jvm-abi-gen: sort inner classes
This commit is contained in:
@@ -150,10 +150,15 @@ class JvmAbiOutputExtension(
|
||||
override fun visitEnd() {}
|
||||
}, 0)
|
||||
|
||||
innerClassesToKeep.retainAll(innerClassInfos.keys)
|
||||
for (name in innerClassesToKeep.toList()) {
|
||||
val info = innerClassInfos[name] ?: continue
|
||||
generateSequence(info) { it.outerName?.takeIf(innerClassesToKeep::add)?.let(innerClassInfos::get) }
|
||||
.forEach { writer.visitInnerClass(it.name, it.outerName, it.innerName, it.access) }
|
||||
var info = innerClassInfos[name]
|
||||
while (info != null) {
|
||||
info = info.outerName?.takeIf(innerClassesToKeep::add)?.let(innerClassInfos::get)
|
||||
}
|
||||
}
|
||||
for (name in innerClassesToKeep.sorted()) {
|
||||
innerClassInfos[name]?.let { writer.visitInnerClass(it.name, it.outerName, it.innerName, it.access) }
|
||||
}
|
||||
|
||||
writer.visitEnd()
|
||||
|
||||
@@ -21,15 +21,15 @@ public class test/BaseClass {
|
||||
@kotlin.Metadata
|
||||
public final class test/Class$NestedInnerClass$NestedNestedInnerClass {
|
||||
// source: 'classes.kt'
|
||||
public final inner class test/Class$NestedInnerClass$NestedNestedInnerClass
|
||||
private final inner class test/Class$NestedInnerClass
|
||||
public final inner class test/Class$NestedInnerClass$NestedNestedInnerClass
|
||||
public method <init>(): void
|
||||
}
|
||||
@kotlin.Metadata
|
||||
final class test/Class$NestedInnerClass {
|
||||
// source: 'classes.kt'
|
||||
public final inner class test/Class$NestedInnerClass$NestedNestedInnerClass
|
||||
private final inner class test/Class$NestedInnerClass
|
||||
public final inner class test/Class$NestedInnerClass$NestedNestedInnerClass
|
||||
public method <init>(): void
|
||||
}
|
||||
@kotlin.Metadata
|
||||
|
||||
@@ -6,15 +6,15 @@ public annotation class Anno {
|
||||
@kotlin.Metadata
|
||||
public final class InAnnotation {
|
||||
// source: 'innerClasses.kt'
|
||||
public inner class Outer$Middle$Inner
|
||||
public inner class Outer$Middle
|
||||
public inner class Outer$Middle$Inner
|
||||
public method <init>(): void
|
||||
}
|
||||
@kotlin.Metadata
|
||||
public final class InInlineMethod {
|
||||
// source: 'innerClasses.kt'
|
||||
public inner class Outer$Middle$Inner
|
||||
public inner class Outer$Middle
|
||||
public inner class Outer$Middle$Inner
|
||||
public method <init>(): void
|
||||
public final @org.jetbrains.annotations.NotNull method foo(): java.lang.Class
|
||||
}
|
||||
@@ -26,8 +26,8 @@ public final class InPrivateMethod {
|
||||
@kotlin.Metadata
|
||||
public final class InPublicMethod {
|
||||
// source: 'innerClasses.kt'
|
||||
public inner class Outer$Middle$Inner
|
||||
public inner class Outer$Middle
|
||||
public inner class Outer$Middle$Inner
|
||||
public method <init>(): void
|
||||
public final method foo(@org.jetbrains.annotations.NotNull p0: Outer$Middle$Inner): void
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user