@@ -30,7 +30,7 @@ public static void Fixup (IList<ClassFile> classes)
30
30
var class_metadata = ( metadata as KotlinClass ) ;
31
31
32
32
if ( class_metadata != null ) {
33
- FixupClassVisibility ( c , class_metadata , classes ) ;
33
+ FixupClassVisibility ( c , class_metadata ) ;
34
34
35
35
if ( ! c . AccessFlags . IsPubliclyVisible ( ) )
36
36
continue ;
@@ -62,7 +62,7 @@ public static void Fixup (IList<ClassFile> classes)
62
62
}
63
63
}
64
64
65
- static void FixupClassVisibility ( ClassFile klass , KotlinClass metadata , IList < ClassFile > classes )
65
+ static void FixupClassVisibility ( ClassFile klass , KotlinClass metadata )
66
66
{
67
67
// Hide class if it isn't Public/Protected
68
68
if ( klass . AccessFlags . IsPubliclyVisible ( ) && ! metadata . Visibility . IsPubliclyVisible ( ) ) {
@@ -83,33 +83,15 @@ static void FixupClassVisibility (ClassFile klass, KotlinClass metadata, IList<C
83
83
Log . Debug ( $ "Kotlin: Hiding internal class { klass . ThisClass . Name . Value } ") ;
84
84
klass . AccessFlags = SetVisibility ( klass . AccessFlags , ClassAccessFlags . Private ) ;
85
85
86
- foreach ( var ic in klass . InnerClasses )
87
- HideInternalInnerClass ( ic , classes ) ;
86
+ foreach ( var ic in klass . InnerClasses ) {
87
+ Log . Debug ( $ "Kotlin: Hiding nested internal type { ic . InnerClass . Name . Value } ") ;
88
+ ic . InnerClassAccessFlags = SetVisibility ( ic . InnerClassAccessFlags , ClassAccessFlags . Private ) ;
89
+ }
88
90
89
91
return ;
90
92
}
91
93
}
92
94
93
- static void HideInternalInnerClass ( InnerClassInfo klass , IList < ClassFile > classes )
94
- {
95
- var existing = klass . InnerClassAccessFlags ;
96
-
97
- klass . InnerClassAccessFlags = SetVisibility ( existing , ClassAccessFlags . Private ) ;
98
- Log . Debug ( $ "Kotlin: Hiding nested internal type { klass . InnerClass . Name . Value } ") ;
99
-
100
- // Setting the inner class access flags above doesn't technically do anything, because we output
101
- // from the inner class's ClassFile, so we need to find that and set it there.
102
- var kf = classes . FirstOrDefault ( c => c . ThisClass . Name . Value == klass . InnerClass . Name . Value ) ;
103
-
104
- if ( kf != null ) {
105
- kf . AccessFlags = SetVisibility ( kf . AccessFlags , ClassAccessFlags . Private ) ;
106
- kf . InnerClass . InnerClassAccessFlags = SetVisibility ( kf . InnerClass . InnerClassAccessFlags , ClassAccessFlags . Private ) ;
107
-
108
- foreach ( var inner_class in kf . InnerClasses . Where ( c => c . OuterClass . Name . Value == kf . ThisClass . Name . Value ) )
109
- HideInternalInnerClass ( inner_class , classes ) ;
110
- }
111
- }
112
-
113
95
// Passing null for 'newVisibility' parameter means 'package-private'
114
96
static ClassAccessFlags SetVisibility ( ClassAccessFlags existing , ClassAccessFlags ? newVisibility )
115
97
{
0 commit comments