From 01fcfed6053fe361fe37845e448d5ef4e4bee328 Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Wed, 6 Jan 2021 12:30:54 -0500 Subject: [PATCH] Bump to xamarin/Java.Interop/master@fdc200cc Fixes: https://github.com/xamarin/java.interop/issues/767 Changes: https://github.com/xamarin/java.interop/compare/7574f166008bb45c0df97315aae7907ac25f8602...fdc200cca5676660dd8f732f4d7eef7716daa3df * xamarin/java.interop@fdc200cc: [Xamarin.Android.Tools.Bytecode] Relax _ApiXml check (#772) * xamarin/java.interop@f1b93653: [generator] Change generated code to not emit CA1305 warning. (#771) * xamarin/java.interop@2244407d: [generator] Ensure DIM from assembly refs are correctly marked (#770) * xamarin/java.interop@da73d6a5: [Java.Interop] Prevent premature collection w/ JniInstance* (#768) Commit a7413a23 added support for invoking `java-source-utils.jar` on `@(JavaSourceJar)` to extract Javadoc comments and translate them into C# XML Documentation Comments. What this can *also* do is provide correct parameter names. As of commit a7413a23, the `BindingBuildTest.JavaSourceJar()` integration test would emit the warning: obj/Debug/generated/src/Com.Xamarin.Android.Test.Msbuildtest.JavaSourceJarTest.cs(75,20): warning CS1572: XML comment has a param tag for 'name', but there is no parameter by that name Commit xamarin/java.interop@fdc200cc allows `java-source-utils.jar` output to be used with `class-parse`, allowing `@(_JavaSourceJavadocXml)` files -- the output of `java-source-utils.jar` -- to be included in `@(_AndroidDocumentationPath)`. This allows `@(JavaSourceJar)` files to provide parameter names within bindings, removing the CS1572 warning, and making for better overall bindings. --- external/Java.Interop | 2 +- .../Xamarin.Android.Bindings.ClassParse.targets | 2 -- .../Xamarin.Android.JcwGen-Tests/BindingTests.cs | 14 +++++++------- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/external/Java.Interop b/external/Java.Interop index 7574f166008..fdc200cca56 160000 --- a/external/Java.Interop +++ b/external/Java.Interop @@ -1 +1 @@ -Subproject commit 7574f166008bb45c0df97315aae7907ac25f8602 +Subproject commit fdc200cca5676660dd8f732f4d7eef7716daa3df diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets index 7d61a578409..0c986cf825f 100644 --- a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets +++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.ClassParse.targets @@ -19,9 +19,7 @@ This file is only used by binding projects. Outputs="$(ApiOutputFile)"> - <_AndroidDocumentationPath Include="@(JavaDocIndex->'%(RootDir)\%(Directory)')" /> <_AndroidDocumentationPath Include="$(JavaDocPaths)" /> <_AndroidDocumentationPath Include="$(Java7DocPaths)" /> diff --git a/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/BindingTests.cs b/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/BindingTests.cs index 9a1332d4a07..f4c6a07d8ce 100644 --- a/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/BindingTests.cs +++ b/tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/BindingTests.cs @@ -66,14 +66,14 @@ public void Arrays () { using (var dh = new Com.Xamarin.Android.DataHandler ()) { EventHandler h = (o, e) => { - Assert.AreEqual ("fromNode", e.P0); - Assert.AreEqual ("fromChannel", e.P1); - Assert.AreEqual ("payloadType", e.P2); - for (int i = 0; i < e.P3.Length; ++i) { - for (int j = 0; j < e.P3 [i].Length; ++j) { + Assert.AreEqual ("fromNode", e.FromNode); + Assert.AreEqual ("fromChannel", e.FromChannel); + Assert.AreEqual ("payloadType", e.PayloadType); + for (int i = 0; i < e.Payload.Length; ++i) { + for (int j = 0; j < e.Payload [i].Length; ++j) { byte expected = (byte) (((i+1)*10) + (j+1)); - Assert.AreEqual ((byte)(expected + 'J'), e.P3 [i][j]); - e.P3 [i][j] = expected; + Assert.AreEqual ((byte)(expected + 'J'), e.Payload [i][j]); + e.Payload [i][j] = expected; } } };