jvm-abi-gen: keep InnerClass attributes for all referenced types
^KT-55233 Fixed
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
public @interface Anno {
|
||||
Class<?> value();
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
public class Outer {
|
||||
public static class Middle {
|
||||
public static class Inner {
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
// IGNORE_BACKEND_LEGACY: JVM_IR
|
||||
@@ -0,0 +1,14 @@
|
||||
@Anno(Outer.Middle.Inner::class)
|
||||
class InAnnotation {}
|
||||
|
||||
class InPublicMethod {
|
||||
fun foo(x: Outer.Middle.Inner) {}
|
||||
}
|
||||
|
||||
class InPrivateMethod {
|
||||
private fun foo(x: Outer.Middle.Inner) {}
|
||||
}
|
||||
|
||||
class InInlineMethod {
|
||||
inline fun foo(): Class<*> = Outer.Middle.Inner::class.java
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
public annotation class Anno {
|
||||
// source: 'Anno.java'
|
||||
public abstract method value(): java.lang.Class
|
||||
}
|
||||
@Anno(value=Outer$Middle$Inner::class)
|
||||
@kotlin.Metadata
|
||||
public final class InAnnotation {
|
||||
// source: 'innerClasses.kt'
|
||||
public inner class Outer$Middle$Inner
|
||||
public inner class Outer$Middle
|
||||
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 method <init>(): void
|
||||
public final @org.jetbrains.annotations.NotNull method foo(): java.lang.Class
|
||||
}
|
||||
@kotlin.Metadata
|
||||
public final class InPrivateMethod {
|
||||
// source: 'innerClasses.kt'
|
||||
public method <init>(): void
|
||||
}
|
||||
@kotlin.Metadata
|
||||
public final class InPublicMethod {
|
||||
// source: 'innerClasses.kt'
|
||||
public inner class Outer$Middle$Inner
|
||||
public inner class Outer$Middle
|
||||
public method <init>(): void
|
||||
public final method foo(@org.jetbrains.annotations.NotNull p0: Outer$Middle$Inner): void
|
||||
}
|
||||
public class Outer$Middle$Inner {
|
||||
// source: 'Outer.java'
|
||||
public inner class Outer$Middle
|
||||
public inner class Outer$Middle$Inner
|
||||
public method <init>(): void
|
||||
}
|
||||
public class Outer$Middle {
|
||||
// source: 'Outer.java'
|
||||
public inner class Outer$Middle
|
||||
public inner class Outer$Middle$Inner
|
||||
public method <init>(): void
|
||||
}
|
||||
public class Outer {
|
||||
// source: 'Outer.java'
|
||||
public inner class Outer$Middle
|
||||
public method <init>(): void
|
||||
}
|
||||
Reference in New Issue
Block a user