Skip to content

Commit 0334f42

Browse files
authored
[generator] Hide Java.Lang.Object infrastructure (#698)
Fixes: #688 Context: dotnet/android#4582 Context: dotnet/android@3c94f6f Context: dotnet/android#4582 (comment) In dotnet/android#4582 we hid "infrastructural" members like `Java.Lang.Object.ThresholdClass` from the editor and debugger using `[DebuggerBrowsable(DebuggerBrowsableState.Never)]` and `[EditorBrowsable(EditorBrowsableState.Never)]`. However, `generator` output overrides these members, and thus they're *still* visible from the IDE editor and debugger. In order to *fully* hide infrastructural members from the editor and debugger, *every occurrence* of the member must also have `DebuggerBrowsableAttribute` and `EditorBrowsableAttribute`! Update `generator` so that all infrastructural members contain the attributes necessary to hide them from code completion, e.g. [global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)] [global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)] public override global::Java.Interop.JniPeerMembers JniPeerMembers { get { return _members; } } This ensures that the members are in fact hidden from IDEs.
1 parent c0fcc43 commit 0334f42

File tree

86 files changed

+677
-0
lines changed

Some content is hidden

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

86 files changed

+677
-0
lines changed

tests/generator-Tests/Integration-Tests/Compiler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public static Assembly Compile (Xamarin.Android.Binder.CodeGeneratorOptions opti
4545
MetadataReference.CreateFromFile (unitTestFrameworkAssemblyPath),
4646
MetadataReference.CreateFromFile (typeof(object).Assembly.Location),
4747
MetadataReference.CreateFromFile (typeof(Enumerable).Assembly.Location),
48+
MetadataReference.CreateFromFile (typeof(Uri).Assembly.Location),
4849
MetadataReference.CreateFromFile (Path.Combine (binDir, "Java.Interop.dll")),
4950
MetadataReference.CreateFromFile (Path.Combine (facDir, "netstandard.dll"))
5051
};

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/ObsoleteInterfaceAlternativeClass.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,14 +107,20 @@ internal partial class IParentInvoker : global::Java.Lang.Object, IParent {
107107
get { return _members.JniPeerType.PeerReference.Handle; }
108108
}
109109

110+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
111+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
110112
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
111113
get { return _members; }
112114
}
113115

116+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
117+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
114118
protected override IntPtr ThresholdClass {
115119
get { return class_ref; }
116120
}
117121

122+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
123+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
118124
protected override global::System.Type ThresholdType {
119125
get { return _members.ManagedPeerType; }
120126
}

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteDefaultInterfaceMethodInvoker.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,20 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf
4444
get { return _members.JniPeerType.PeerReference.Handle; }
4545
}
4646

47+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
48+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
4749
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
4850
get { return _members; }
4951
}
5052

53+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
54+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
5155
protected override IntPtr ThresholdClass {
5256
get { return class_ref; }
5357
}
5458

59+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
60+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
5561
protected override global::System.Type ThresholdType {
5662
get { return _members.ManagedPeerType; }
5763
}

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterface.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,20 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf
8383
get { return _members.JniPeerType.PeerReference.Handle; }
8484
}
8585

86+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
87+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
8688
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
8789
get { return _members; }
8890
}
8991

92+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
93+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
9094
protected override IntPtr ThresholdClass {
9195
get { return class_ref; }
9296
}
9397

98+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
99+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
94100
protected override global::System.Type ThresholdType {
95101
get { return _members.ManagedPeerType; }
96102
}

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceDefaultMethod.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,20 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf
4040
get { return _members.JniPeerType.PeerReference.Handle; }
4141
}
4242

43+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
44+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
4345
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
4446
get { return _members; }
4547
}
4648

49+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
50+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
4751
protected override IntPtr ThresholdClass {
4852
get { return class_ref; }
4953
}
5054

55+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
56+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
5157
protected override global::System.Type ThresholdType {
5258
get { return _members.ManagedPeerType; }
5359
}

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceDefaultProperty.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,20 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf
6969
get { return _members.JniPeerType.PeerReference.Handle; }
7070
}
7171

72+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
73+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
7274
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
7375
get { return _members; }
7476
}
7577

78+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
79+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
7680
protected override IntPtr ThresholdClass {
7781
get { return class_ref; }
7882
}
7983

84+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
85+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
8086
protected override global::System.Type ThresholdType {
8187
get { return _members.ManagedPeerType; }
8288
}

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceDefaultPropertyGetterOnly.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,20 @@ internal partial class IMyInterfaceInvoker : global::Java.Lang.Object, IMyInterf
4242
get { return _members.JniPeerType.PeerReference.Handle; }
4343
}
4444

45+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
46+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
4547
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
4648
get { return _members; }
4749
}
4850

51+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
52+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
4953
protected override IntPtr ThresholdClass {
5054
get { return class_ref; }
5155
}
5256

57+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
58+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
5359
protected override global::System.Type ThresholdType {
5460
get { return _members.ManagedPeerType; }
5561
}

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteInterfaceRedeclaredDefaultMethod.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,20 @@ internal partial class IMyInterface2Invoker : global::Java.Lang.Object, IMyInter
1515
get { return _members.JniPeerType.PeerReference.Handle; }
1616
}
1717

18+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
19+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
1820
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
1921
get { return _members; }
2022
}
2123

24+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
25+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
2226
protected override IntPtr ThresholdClass {
2327
get { return class_ref; }
2428
}
2529

30+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
31+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
2632
protected override global::System.Type ThresholdType {
2733
get { return _members.ManagedPeerType; }
2834
}

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteNestedInterfaceClass.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,20 @@ public partial interface IParent : IJavaObject, IJavaPeerable {
1616
get { return _members.JniPeerType.PeerReference.Handle; }
1717
}
1818

19+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
20+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
1921
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
2022
get { return _members; }
2123
}
2224

25+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
26+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
2327
protected override IntPtr ThresholdClass {
2428
get { return _members.JniPeerType.PeerReference.Handle; }
2529
}
2630

31+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
32+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
2733
protected override global::System.Type ThresholdType {
2834
get { return _members.ManagedPeerType; }
2935
}
@@ -44,14 +50,20 @@ internal partial class IParentInvoker : global::Java.Lang.Object, IParent {
4450
get { return _members.JniPeerType.PeerReference.Handle; }
4551
}
4652

53+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
54+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
4755
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
4856
get { return _members; }
4957
}
5058

59+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
60+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
5161
protected override IntPtr ThresholdClass {
5262
get { return class_ref; }
5363
}
5464

65+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
66+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
5567
protected override global::System.Type ThresholdType {
5668
get { return _members.ManagedPeerType; }
5769
}

tests/generator-Tests/Unit-Tests/CodeGeneratorExpectedResults/JavaInterop1/WriteNestedInterfaceTypes.txt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,20 @@ public partial interface IParent : IJavaObject, IJavaPeerable {
2626
get { return _members.JniPeerType.PeerReference.Handle; }
2727
}
2828

29+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
30+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
2931
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
3032
get { return _members; }
3133
}
3234

35+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
36+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
3337
protected override IntPtr ThresholdClass {
3438
get { return class_ref; }
3539
}
3640

41+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
42+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
3743
protected override global::System.Type ThresholdType {
3844
get { return _members.ManagedPeerType; }
3945
}
@@ -104,14 +110,20 @@ internal partial class IParentInvoker : global::Java.Lang.Object, IParent {
104110
get { return _members.JniPeerType.PeerReference.Handle; }
105111
}
106112

113+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
114+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
107115
public override global::Java.Interop.JniPeerMembers JniPeerMembers {
108116
get { return _members; }
109117
}
110118

119+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
120+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
111121
protected override IntPtr ThresholdClass {
112122
get { return class_ref; }
113123
}
114124

125+
[global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)]
126+
[global::System.ComponentModel.EditorBrowsable (global::System.ComponentModel.EditorBrowsableState.Never)]
115127
protected override global::System.Type ThresholdType {
116128
get { return _members.ManagedPeerType; }
117129
}

0 commit comments

Comments
 (0)