[generator] Remove class_ref compatibility getters - #12685
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
There are correctness/maintainability issues in the updated Mono.Android sources (notably a formatting regression in AsyncTask.cs and a nullable-contract suppression in SparseArray.Get) that should be addressed before merging.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Review tier: Lite
Findings: 1
New issues introduced by this change (3)
| Severity | Finding |
|---|---|
src/Mono.Android/Android.Util/SparseArray.cs — 🤖 !) here; SparseArray.get()… |
|
src/Mono.Android/Android.OS/AsyncTask.cs — 🤖 ❌ error Codebase conventions — The ThresholdClass getter indentation is inconsistent with… |
|
src/Mono.Android/Android.Widget/AdapterView.cs — 🤖 💡 suggestion Best practices — Consider returning ref readonly JniPeerMembers from the… |
What changed in this PR
This PR updates the Java.Interop generator and in-tree Mono.Android consumers to stop emitting (and relying on) legacy class_ref / java_class_ref compatibility getters, instead using direct JniPeerMembers access (including UnsafeAccessor for a handful of generic wrapper cases). It also updates generator expectation baselines and adds runtime test coverage for impacted generic wrappers and ContentValues.
Changes:
- Remove generator emission of
class_ref/java_class_refshims and adjust peer-members field visibility for XAJavaInterop1 output. - Migrate handwritten/framework consumers from
class_refto_members.JniPeerType.PeerReference.Handle, addingUnsafeAccessorfor generic wrappers that must read a non-generic base’s private_members. - Add/extend runtime tests for
ArrayAdapter<T>,SparseArray<T>, andContentValues, and update generator expected outputs accordingly.
| File | Description |
|---|---|
| tests/Mono.Android-Tests/Mono.Android-Tests/Android.Widget/AdapterTests.cs | Adds runtime coverage ensuring ArrayAdapter<T> bindings behave correctly. |
| tests/Mono.Android-Tests/Mono.Android-Tests/Android.Util/SparseArrayTests.cs | Adds runtime coverage ensuring SparseArray<T> bindings behave correctly. |
| tests/Mono.Android-Tests/Mono.Android-Tests/Android.Content/ContentValuesTests.cs | Adds runtime coverage for ContentValues primitive put/get round-trips. |
| tests/CodeGen-Binding/Xamarin.Android.McwGen-Tests/Timing.cs | Updates test binding code to use _members handle instead of class_ref. |
| tests/CodeGen-Binding/Xamarin.Android.JcwGen-Tests/BindingTests.cs | Updates comments/expectations related to class-handle initialization. |
| src/Mono.Android/Java.Lang/Throwable.cs | Replaces class_ref usage with direct _members class-handle access. |
| src/Mono.Android/Android.Widget/TextView.cs | Replaces class_ref usage with direct _members class-handle access. |
| src/Mono.Android/Android.Widget/BaseAdapter.cs | Uses UnsafeAccessor to read base _members for generic wrapper construction. |
| src/Mono.Android/Android.Widget/ArrayAdapter.cs | Uses UnsafeAccessor to read base _members for generic wrapper JNI calls/ctors. |
| src/Mono.Android/Android.Widget/AdapterViewAnimator.cs | Switches class_ref JNI lookups to _members class-handle access. |
| src/Mono.Android/Android.Widget/AdapterView.cs | Uses UnsafeAccessor to read base _members for generic wrapper construction. |
| src/Mono.Android/Android.Widget/AbsListView.cs | Switches class_ref JNI lookups to _members class-handle access. |
| src/Mono.Android/Android.Util/SparseArray.cs | Uses UnsafeAccessor to read base _members for generic wrapper JNI calls. |
| src/Mono.Android/Android.OS/AsyncTask.cs | Uses UnsafeAccessor to read base _members for generic wrapper JNI calls. |
| src/Mono.Android/Android.Content/CursorLoader.cs | Switches class_ref JNI lookups to _members class-handle access. |
| src/Mono.Android/Android.Content/ContentValues.cs | Switches class_ref JNI lookups to _members class-handle access. |
| src/Mono.Android/Android.App/Notification.cs | Switches class_ref JNI lookups to _members class-handle access. |
| external/Java.Interop/tools/generator/SourceWriters/PeerMembersField.cs | Makes generated _members private for XAJavaInterop1 output. |
| external/Java.Interop/tools/generator/SourceWriters/InterfaceMemberAlternativeClass.cs | Renames/adjusts logic around whether peer-members are required. |
| external/Java.Interop/tools/generator/SourceWriters/InterfaceInvokerClass.cs | Stops emitting java_class_ref compatibility getter for invokers. |
| external/Java.Interop/tools/generator/SourceWriters/ClassInvokers.cs | Removes class_ref/java_class_ref property writer types and updates docs/comments. |
| external/Java.Interop/tools/generator/SourceWriters/BoundClass.cs | Stops adding class_ref getter to generated bound classes. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/SourceWriters/PeerMembersFieldTests.cs | Updates unit expectations for private _members under XAJavaInterop1. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs | Updates generator tests to assert _members presence and absence of class_ref. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteUnnestedInterfaceTypes.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteStaticInterfaceProperty.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteStaticInterfaceMethod.txt | Updates expected output to private _members and remove java_class_ref. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteObjectField.txt | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceTypes.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteNestedInterfaceClass.txt | Updates expected output removing class_ref/java_class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteMethodWithCharSequenceArrays.txt | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteKotlinUnsignedTypePropertiesClass.txt | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteKotlinUnsignedTypeMethodsClass.txt | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteKotlinUnsignedArrayTypePropertiesClass.txt | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteKotlinUnsignedArrayTypeMethodsClass.txt | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceRedeclaredDefaultMethod.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceFieldAsDimProperty.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultPropertyGetterOnly.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultProperty.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterfaceDefaultMethod.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteInterface.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDuplicateInterfaceEventArgs.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteDefaultInterfaceMethodInvoker.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteConstSugarInterfaceFields.txt | Updates expected output to private _members in interface helper classes. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/WriteClass.txt | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1/ObsoleteInterfaceAlternativeClass.txt | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteObjectField.txt | Updates NRT expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteMethodWithCharSequenceArrays.txt | Updates NRT expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteInterface.txt | Updates NRT expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/XAJavaInterop1-NRT/WriteClass.txt | Updates NRT expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.TestInterfaceImplementation.cs | Updates expected generated binding output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.ITestInterface.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericPropertyInterface.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.IGenericInterface.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringPropertyImplementation.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericStringImplementation.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericObjectPropertyImplementation.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Test.ME.GenericImplementation.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IQueue.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.IDeque.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Java.Util.ICollection.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Java.Lang.String.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/IInterfaceWithoutNamespace.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/TestInterface/ClassWithoutNamespace.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Streams/Java.Lang.Throwable.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Streams/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Streams/Java.IO.OutputStream.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Streams/Java.IO.IOException.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Streams/Java.IO.InputStream.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Streams/Java.IO.FilterOutputStream.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/StaticProperties/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/StaticProperties/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/StaticMethods/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/StaticMethods/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/StaticFields/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/ParameterXPath/Xamarin.Test.A.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/ParameterXPath/Java.Util.IList.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/ParameterXPath/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/ParameterXPath/Java.Lang.Integer.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalProperties/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalProperties/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.C.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalMethods/Xamarin.Test.A.cs | Updates expected output removing class_ref and privatizing _members (including nested type). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalMethods/Java.Lang.Throwable.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalMethods/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalMethods/Java.Lang.Integer.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NormalMethods/Java.Lang.Class.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NonStaticFields/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NestedTypes/Xamarin.Test.NotificationCompatBase.cs | Updates expected output removing class_ref/java_class_ref and privatizing _members (nested/invokers). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/NestedTypes/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/java.util.List/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/java.util.List/Java.Util.IList.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/java.util.List/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/java.lang.Object/Java.Lang.Object.cs | Updates expected output removing class_ref and switching to XA peer-members form. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/java.lang.Enum/Java.Lang.State.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/java.lang.Enum/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/java.lang.Enum/Java.Lang.IComparable.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/java.lang.Enum/Java.Lang.Enum.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject2.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II2.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Xamarin.Test.II1.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/InterfaceMethodsConflict/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/GenericArguments/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaDrm.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.IExoMediaCrypto.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.FrameworkMediaDrm.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/GenericArguments/Com.Google.Android.Exoplayer.Drm.FrameworkMediaCrypto.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/CSharpKeywords/Xamarin.Test.CSharpKeywords.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/CSharpKeywords/Java.Lang.Throwable.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/CSharpKeywords/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Views.View.cs | Updates expected output removing class_ref/java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableStringInternal.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.SpannableString.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpanned.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_Jar2Xml/Android.Text.ISpannable.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_ClassParse/Xamarin.Test.Invalidnames.InvalidNameMembers.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_ClassParse/Xamarin.Test.Invalidnames.In.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_ClassParse/Xamarin.Google.Composable.MyClass.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_ClassParse/Java.Lang.String.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Core_ClassParse/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Constructors/Xamarin.Test.SomeObject2.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Constructors/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Constructors/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Arrays/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Arrays/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Android.Graphics.Color/Xamarin.Test.SomeObject.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Android.Graphics.Color/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.ISpinnerAdapter.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.IAdapter.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.GenericReturnObject.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AdapterView.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Adapters/Xamarin.Test.AbsSpinner.cs | Updates expected output removing class_ref and privatizing _members (and invoker _members). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/Adapters/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.TestClass.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.PublicFinalClass.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.PublicClass.cs | Updates expected output removing class_ref/java_class_ref and privatizing _members_* (nested). |
| external/Java.Interop/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.IExtendedInterface.cs | Updates expected output removing java_class_ref and privatizing _members_*. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.ExtendPublicClass.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/AccessModifiers/Xamarin.Test.BasePublicClass.cs | Updates expected output removing class_ref and privatizing _members. |
| external/Java.Interop/tests/generator-Tests/expected.xaji/AccessModifiers/Java.Lang.Object.cs | Updates expected output removing class_ref and privatizing _members. |
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>


Summary
class_refandjava_class_refcompatibility propertiesJniPeerMembersfields private and migrate handwritten consumers to direct accessUnsafeAccessormethods for the five generic wrappers that need their non-generic base type's private_membersArrayAdapter<T>,SparseArray<T>, andContentValuesruntime coverageSize
API 37 Release
Mono.Android.dllis 41,366,016 bytes, 513,024 bytes smaller than the recorded 41,879,040-byte baseline. The generator removes 6,778MethodDef,Property, andMethodSemanticsrows.Validation
Fixes #12680