@@ -30,7 +30,7 @@ public static void Fixup (IList<ClassFile> classes)
3030 var class_metadata = ( metadata as KotlinClass ) ;
3131
3232 if ( class_metadata != null ) {
33- FixupClassVisibility ( c , class_metadata , classes ) ;
33+ FixupClassVisibility ( c , class_metadata ) ;
3434
3535 if ( ! c . AccessFlags . IsPubliclyVisible ( ) )
3636 continue ;
@@ -62,7 +62,7 @@ public static void Fixup (IList<ClassFile> classes)
6262 }
6363 }
6464
65- static void FixupClassVisibility ( ClassFile klass , KotlinClass metadata , IList < ClassFile > classes )
65+ static void FixupClassVisibility ( ClassFile klass , KotlinClass metadata )
6666 {
6767 // Hide class if it isn't Public/Protected
6868 if ( klass . AccessFlags . IsPubliclyVisible ( ) && ! metadata . Visibility . IsPubliclyVisible ( ) ) {
@@ -83,33 +83,15 @@ static void FixupClassVisibility (ClassFile klass, KotlinClass metadata, IList<C
8383 Log . Debug ( $ "Kotlin: Hiding internal class { klass . ThisClass . Name . Value } ") ;
8484 klass . AccessFlags = SetVisibility ( klass . AccessFlags , ClassAccessFlags . Private ) ;
8585
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+ }
8890
8991 return ;
9092 }
9193 }
9294
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-
11395 // Passing null for 'newVisibility' parameter means 'package-private'
11496 static ClassAccessFlags SetVisibility ( ClassAccessFlags existing , ClassAccessFlags ? newVisibility )
11597 {
0 commit comments