jvm-abi-gen: only keep relevant InnerClasses from current module
If a class is not referenced by the ABI class file, its InnerClasses entry should only be kept if it's the current class or a descendant of the current class.
This commit is contained in:
@@ -2,13 +2,19 @@
|
||||
class InAnnotation {}
|
||||
|
||||
class InPublicMethod {
|
||||
fun foo(x: Outer.Middle.Inner) {}
|
||||
fun foo(x: Outer.Middle.Inner): Class<*> = OuterKt.MiddleKt.InnerKt::class.java
|
||||
}
|
||||
|
||||
class InPrivateMethod {
|
||||
private fun foo(x: Outer.Middle.Inner) {}
|
||||
private fun foo(x: Outer.Middle.Inner): Class<*> = OuterKt.MiddleKt.InnerKt::class.java
|
||||
}
|
||||
|
||||
class InInlineMethod {
|
||||
inline fun foo(): Class<*> = Outer.Middle.Inner::class.java
|
||||
inline fun foo(x: Outer.Middle.Inner): Class<*> = OuterKt.MiddleKt.InnerKt::class.java
|
||||
}
|
||||
|
||||
class OuterKt {
|
||||
class MiddleKt {
|
||||
class InnerKt
|
||||
}
|
||||
}
|
||||
|
||||
@@ -15,8 +15,10 @@ public final class InInlineMethod {
|
||||
// source: 'innerClasses.kt'
|
||||
public inner class Outer$Middle
|
||||
public inner class Outer$Middle$Inner
|
||||
public final inner class OuterKt$MiddleKt
|
||||
public final inner class OuterKt$MiddleKt$InnerKt
|
||||
public method <init>(): void
|
||||
public final @org.jetbrains.annotations.NotNull method foo(): java.lang.Class
|
||||
public final @org.jetbrains.annotations.NotNull method foo(@org.jetbrains.annotations.NotNull p0: Outer$Middle$Inner): java.lang.Class
|
||||
}
|
||||
@kotlin.Metadata
|
||||
public final class InPrivateMethod {
|
||||
@@ -29,7 +31,7 @@ public final class InPublicMethod {
|
||||
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
|
||||
public final @org.jetbrains.annotations.NotNull method foo(@org.jetbrains.annotations.NotNull p0: Outer$Middle$Inner): java.lang.Class
|
||||
}
|
||||
public class Outer$Middle$Inner {
|
||||
// source: 'Outer.java'
|
||||
@@ -48,3 +50,23 @@ public class Outer {
|
||||
public inner class Outer$Middle
|
||||
public method <init>(): void
|
||||
}
|
||||
@kotlin.Metadata
|
||||
public final class OuterKt$MiddleKt$InnerKt {
|
||||
// source: 'innerClasses.kt'
|
||||
public final inner class OuterKt$MiddleKt
|
||||
public final inner class OuterKt$MiddleKt$InnerKt
|
||||
public method <init>(): void
|
||||
}
|
||||
@kotlin.Metadata
|
||||
public final class OuterKt$MiddleKt {
|
||||
// source: 'innerClasses.kt'
|
||||
public final inner class OuterKt$MiddleKt
|
||||
public final inner class OuterKt$MiddleKt$InnerKt
|
||||
public method <init>(): void
|
||||
}
|
||||
@kotlin.Metadata
|
||||
public final class OuterKt {
|
||||
// source: 'innerClasses.kt'
|
||||
public final inner class OuterKt$MiddleKt
|
||||
public method <init>(): void
|
||||
}
|
||||
Reference in New Issue
Block a user