Skip to content
This repository was archived by the owner on Jul 6, 2026. It is now read-only.

Commit d736086

Browse files
jpobstjonpryor
authored andcommitted
[generator] simplify life with 'var' in generated code (#621)
Context: dotnet/android#4227 Our generated code *may* predate `var`, or at least predate `var` becoming widely accepted. As such, we generate code like this: java.code.MyClass __this = global::Java.Lang.Object.GetObject<java.code.MyClass> (jnienv, native__this, JniHandleOwnership.DoNotTransfer); string key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); Migrate this code to `var` as it simplifies `generator` and reasoning about behavior when "cross-compiling" code between C#7 and C#8-with- [Nullable Reference Type][0] toolchains: var __this = global::Java.Lang.Object.GetObject<java.code.MyClass> (jnienv, native__this, JniHandleOwnership.DoNotTransfer); var key = JNIEnv.GetString (native_key, JniHandleOwnership.DoNotTransfer); [0]: https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references
1 parent ec4f819 commit d736086

178 files changed

Lines changed: 531 additions & 529 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎tests/generator-Tests/Tests-Core/expected.cp/Java.Interop.__TypeRegistrations.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static void RegisterPackages ()
2727

2828
staticTypeLookup(string[]mappings,stringjavaType)
2929
{
30-
stringmanagedType=Java.Interop.TypeManager.LookupTypeMapping(mappings,javaType);
30+
varmanagedType=Java.Interop.TypeManager.LookupTypeMapping(mappings,javaType);
3131
if(managedType==null)
3232
returnnull;
3333
returnType.GetType(managedType);

‎tests/generator-Tests/Tests-Core/expected.ji/Android.Text.ISpannable.cs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler ()
7373

7474
staticintn_GetSpanFlags_Ljava_lang_Object_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_tag)
7575
{
76-
Android.Text.ISpannable__this=global::Java.Lang.Object.GetObject<Android.Text.ISpannable>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
77-
Java.Lang.Objecttag=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_tag,JniHandleOwnership.DoNotTransfer);
76+
var__this=global::Java.Lang.Object.GetObject<Android.Text.ISpannable>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
77+
vartag=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_tag,JniHandleOwnership.DoNotTransfer);
7878
int__ret=(int)__this.GetSpanFlags(tag);
7979
return__ret;
8080
}
@@ -87,7 +87,7 @@ public unsafe Android.Text.SpanTypes GetSpanFlags (Java.Lang.Object tag)
8787
id_getSpanFlags_Ljava_lang_Object_=JNIEnv.GetMethodID(class_ref,"getSpanFlags","(Ljava/lang/Object;)I");
8888
JValue*__args=stackallocJValue[1];
8989
__args[0]=newJValue((tag==null)?IntPtr.Zero:((global::Java.Lang.Object)tag).Handle);
90-
Android.Text.SpanTypes__ret=(Android.Text.SpanTypes)JNIEnv.CallIntMethod(((global::Java.Lang.Object)this).Handle,id_getSpanFlags_Ljava_lang_Object_,__args);
90+
var__ret=(Android.Text.SpanTypes)JNIEnv.CallIntMethod(((global::Java.Lang.Object)this).Handle,id_getSpanFlags_Ljava_lang_Object_,__args);
9191
return__ret;
9292
}
9393

‎tests/generator-Tests/Tests-Core/expected.ji/Android.Text.ISpanned.cs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,8 @@ static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler ()
7878

7979
staticintn_GetSpanFlags_Ljava_lang_Object_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_tag)
8080
{
81-
Android.Text.ISpanned__this=global::Java.Lang.Object.GetObject<Android.Text.ISpanned>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
82-
Java.Lang.Objecttag=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_tag,JniHandleOwnership.DoNotTransfer);
81+
var__this=global::Java.Lang.Object.GetObject<Android.Text.ISpanned>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
82+
vartag=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_tag,JniHandleOwnership.DoNotTransfer);
8383
int__ret=(int)__this.GetSpanFlags(tag);
8484
return__ret;
8585
}
@@ -92,7 +92,7 @@ public unsafe Android.Text.SpanTypes GetSpanFlags (Java.Lang.Object tag)
9292
id_getSpanFlags_Ljava_lang_Object_=JNIEnv.GetMethodID(class_ref,"getSpanFlags","(Ljava/lang/Object;)I");
9393
JValue*__args=stackallocJValue[1];
9494
__args[0]=newJValue((tag==null)?IntPtr.Zero:((global::Java.Lang.Object)tag).Handle);
95-
Android.Text.SpanTypes__ret=(Android.Text.SpanTypes)JNIEnv.CallIntMethod(((global::Java.Lang.Object)this).Handle,id_getSpanFlags_Ljava_lang_Object_,__args);
95+
var__ret=(Android.Text.SpanTypes)JNIEnv.CallIntMethod(((global::Java.Lang.Object)this).Handle,id_getSpanFlags_Ljava_lang_Object_,__args);
9696
return__ret;
9797
}
9898

‎tests/generator-Tests/Tests-Core/expected.ji/Android.Text.SpannableString.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler ()
8484

8585
staticintn_GetSpanFlags_Ljava_lang_Object_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_what)
8686
{
87-
Android.Text.SpannableString__this=global::Java.Lang.Object.GetObject<Android.Text.SpannableString>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
88-
Java.Lang.Objectwhat=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_what,JniHandleOwnership.DoNotTransfer);
87+
var__this=global::Java.Lang.Object.GetObject<Android.Text.SpannableString>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
88+
varwhat=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_what,JniHandleOwnership.DoNotTransfer);
8989
int__ret=(int)__this.GetSpanFlags(what);
9090
return__ret;
9191
}

‎tests/generator-Tests/Tests-Core/expected.ji/Android.Text.SpannableStringInternal.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler ()
4141

4242
staticintn_GetSpanFlags_Ljava_lang_Object_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_p0)
4343
{
44-
Android.Text.SpannableStringInternal__this=global::Java.Lang.Object.GetObject<Android.Text.SpannableStringInternal>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
45-
Java.Lang.Objectp0=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_p0,JniHandleOwnership.DoNotTransfer);
44+
var__this=global::Java.Lang.Object.GetObject<Android.Text.SpannableStringInternal>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
45+
varp0=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_p0,JniHandleOwnership.DoNotTransfer);
4646
int__ret=(int)__this.GetSpanFlags(p0);
4747
return__ret;
4848
}

‎tests/generator-Tests/Tests-Core/expected.ji/Android.Views.View.cs‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,8 @@ static Delegate GetOnClick_Landroid_view_View_Handler ()
8181

8282
staticvoidn_OnClick_Landroid_view_View_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_v)
8383
{
84-
Android.Views.View.IOnClickListener__this=global::Java.Lang.Object.GetObject<Android.Views.View.IOnClickListener>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
85-
Android.Views.Viewv=global::Java.Lang.Object.GetObject<Android.Views.View>(native_v,JniHandleOwnership.DoNotTransfer);
84+
var__this=global::Java.Lang.Object.GetObject<Android.Views.View.IOnClickListener>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
85+
varv=global::Java.Lang.Object.GetObject<Android.Views.View>(native_v,JniHandleOwnership.DoNotTransfer);
8686
__this.OnClick(v);
8787
}
8888
#pragma warning restore 0169
@@ -160,8 +160,8 @@ static Delegate GetSetOnClickListener_Landroid_view_View_OnClickListener_Handler
160160

161161
staticvoidn_SetOnClickListener_Landroid_view_View_OnClickListener_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_l)
162162
{
163-
Android.Views.View__this=global::Java.Lang.Object.GetObject<Android.Views.View>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
164-
Android.Views.View.IOnClickListenerl=(Android.Views.View.IOnClickListener)global::Java.Lang.Object.GetObject<Android.Views.View.IOnClickListener>(native_l,JniHandleOwnership.DoNotTransfer);
163+
var__this=global::Java.Lang.Object.GetObject<Android.Views.View>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
164+
varl=(Android.Views.View.IOnClickListener)global::Java.Lang.Object.GetObject<Android.Views.View.IOnClickListener>(native_l,JniHandleOwnership.DoNotTransfer);
165165
__this.SetOnClickListener(l);
166166
}
167167
#pragma warning restore 0169
@@ -190,8 +190,8 @@ static Delegate GetSetOn123Listener_Landroid_view_View_OnClickListener_Handler (
190190

191191
staticvoidn_SetOn123Listener_Landroid_view_View_OnClickListener_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_l)
192192
{
193-
Android.Views.View__this=global::Java.Lang.Object.GetObject<Android.Views.View>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
194-
Android.Views.View.IOnClickListenerl=(Android.Views.View.IOnClickListener)global::Java.Lang.Object.GetObject<Android.Views.View.IOnClickListener>(native_l,JniHandleOwnership.DoNotTransfer);
193+
var__this=global::Java.Lang.Object.GetObject<Android.Views.View>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
194+
varl=(Android.Views.View.IOnClickListener)global::Java.Lang.Object.GetObject<Android.Views.View.IOnClickListener>(native_l,JniHandleOwnership.DoNotTransfer);
195195
__this.SetOn123Listener(l);
196196
}
197197
#pragma warning restore 0169
@@ -220,7 +220,7 @@ static Delegate GetAddTouchables_Ljava_util_ArrayList_Handler ()
220220

221221
staticvoidn_AddTouchables_Ljava_util_ArrayList_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_views)
222222
{
223-
Android.Views.View__this=global::Java.Lang.Object.GetObject<Android.Views.View>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
223+
var__this=global::Java.Lang.Object.GetObject<Android.Views.View>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
224224
varviews=Android.Runtime.JavaList<Android.Views.View>.FromJniHandle(native_views,JniHandleOwnership.DoNotTransfer);
225225
__this.AddTouchables(views);
226226
}

‎tests/generator-Tests/Tests-Core/expected.ji/Java.Interop.__TypeRegistrations.cs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static void RegisterPackages ()
2727

2828
staticTypeLookup(string[]mappings,stringjavaType)
2929
{
30-
stringmanagedType=Java.Interop.TypeManager.LookupTypeMapping(mappings,javaType);
30+
varmanagedType=Java.Interop.TypeManager.LookupTypeMapping(mappings,javaType);
3131
if(managedType==null)
3232
returnnull;
3333
returnType.GetType(managedType);

‎tests/generator-Tests/Tests-Core/expected/Android.Text.ISpannable.cs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler ()
6464

6565
staticintn_GetSpanFlags_Ljava_lang_Object_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_tag)
6666
{
67-
Android.Text.ISpannable__this=global::Java.Lang.Object.GetObject<Android.Text.ISpannable>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
68-
Java.Lang.Objecttag=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_tag,JniHandleOwnership.DoNotTransfer);
67+
var__this=global::Java.Lang.Object.GetObject<Android.Text.ISpannable>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
68+
vartag=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_tag,JniHandleOwnership.DoNotTransfer);
6969
int__ret=(int)__this.GetSpanFlags(tag);
7070
return__ret;
7171
}
@@ -78,7 +78,7 @@ public unsafe Android.Text.SpanTypes GetSpanFlags (Java.Lang.Object tag)
7878
id_getSpanFlags_Ljava_lang_Object_=JNIEnv.GetMethodID(class_ref,"getSpanFlags","(Ljava/lang/Object;)I");
7979
JValue*__args=stackallocJValue[1];
8080
__args[0]=newJValue(tag);
81-
Android.Text.SpanTypes__ret=(Android.Text.SpanTypes)JNIEnv.CallIntMethod(((global::Java.Lang.Object)this).Handle,id_getSpanFlags_Ljava_lang_Object_,__args);
81+
var__ret=(Android.Text.SpanTypes)JNIEnv.CallIntMethod(((global::Java.Lang.Object)this).Handle,id_getSpanFlags_Ljava_lang_Object_,__args);
8282
return__ret;
8383
}
8484

‎tests/generator-Tests/Tests-Core/expected/Android.Text.ISpanned.cs‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler ()
6969

7070
staticintn_GetSpanFlags_Ljava_lang_Object_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_tag)
7171
{
72-
Android.Text.ISpanned__this=global::Java.Lang.Object.GetObject<Android.Text.ISpanned>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
73-
Java.Lang.Objecttag=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_tag,JniHandleOwnership.DoNotTransfer);
72+
var__this=global::Java.Lang.Object.GetObject<Android.Text.ISpanned>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
73+
vartag=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_tag,JniHandleOwnership.DoNotTransfer);
7474
int__ret=(int)__this.GetSpanFlags(tag);
7575
return__ret;
7676
}
@@ -83,7 +83,7 @@ public unsafe Android.Text.SpanTypes GetSpanFlags (Java.Lang.Object tag)
8383
id_getSpanFlags_Ljava_lang_Object_=JNIEnv.GetMethodID(class_ref,"getSpanFlags","(Ljava/lang/Object;)I");
8484
JValue*__args=stackallocJValue[1];
8585
__args[0]=newJValue(tag);
86-
Android.Text.SpanTypes__ret=(Android.Text.SpanTypes)JNIEnv.CallIntMethod(((global::Java.Lang.Object)this).Handle,id_getSpanFlags_Ljava_lang_Object_,__args);
86+
var__ret=(Android.Text.SpanTypes)JNIEnv.CallIntMethod(((global::Java.Lang.Object)this).Handle,id_getSpanFlags_Ljava_lang_Object_,__args);
8787
return__ret;
8888
}
8989

‎tests/generator-Tests/Tests-Core/expected/Android.Text.SpannableString.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ static Delegate GetGetSpanFlags_Ljava_lang_Object_Handler ()
9898

9999
staticintn_GetSpanFlags_Ljava_lang_Object_(IntPtrjnienv,IntPtrnative__this,IntPtrnative_what)
100100
{
101-
Android.Text.SpannableString__this=global::Java.Lang.Object.GetObject<Android.Text.SpannableString>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
102-
Java.Lang.Objectwhat=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_what,JniHandleOwnership.DoNotTransfer);
101+
var__this=global::Java.Lang.Object.GetObject<Android.Text.SpannableString>(jnienv,native__this,JniHandleOwnership.DoNotTransfer);
102+
varwhat=global::Java.Lang.Object.GetObject<Java.Lang.Object>(native_what,JniHandleOwnership.DoNotTransfer);
103103
int__ret=(int)__this.GetSpanFlags(what);
104104
return__ret;
105105
}

0 commit comments

Comments
 (0)