JVM IR: Mark annotation implementation classes as anonymous

And add tests to ensure that annotation implementation classes are
handled correctly in jvm-abi-gen.
This commit is contained in:
Steven Schäfer
2021-08-18 15:59:52 +02:00
committed by Alexander Udalov
parent 19660f11a7
commit 6d518c8e57
18 changed files with 128 additions and 4 deletions
@@ -0,0 +1,3 @@
// LANGUAGE_VERSION: 1.6
// IGNORE_BACKEND_LEGACY: JVM
// IGNORE_BACKEND: JVM
@@ -0,0 +1,23 @@
@java.lang.annotation.Retention(value=RUNTIME)
@kotlin.Metadata
public annotation class test/A {
// source: 'test.kt'
}
@kotlin.Metadata
public synthetic final class test/Test$annotationImpl$test_A$0 {
// source: 'test.kt'
enclosing class test/Test
inner (anonymous) class test/Test$annotationImpl$test_A$0
public method <init>(): void
public synthetic final method annotationType(): java.lang.Class
public final method equals(@org.jetbrains.annotations.Nullable p0: java.lang.Object): boolean
public final method hashCode(): int
public final @org.jetbrains.annotations.NotNull method toString(): java.lang.String
}
@kotlin.Metadata
public final class test/Test {
// source: 'test.kt'
inner (anonymous) class test/Test$annotationImpl$test_A$0
public method <init>(): void
public final @org.jetbrains.annotations.NotNull method annotationInstantiation(): test.A
}
@@ -0,0 +1,7 @@
package test
annotation class A
class Test {
inline fun annotationInstantiation() = A()
}