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