Make anonymous classes for callable references synthetic

#KT-28453 Fixed
This commit is contained in:
Alexander Udalov
2018-12-13 18:06:46 +01:00
parent ca4521d57d
commit c1ef89df2c
13 changed files with 61 additions and 16 deletions
@@ -0,0 +1,20 @@
// TARGET_BACKEND: JVM
// IGNORE_BACKEND: JVM_IR
// WITH_RUNTIME
class C {
fun f() {}
val r = 0
}
fun check(c: Class<*>) {
if (!c.isSynthetic) throw AssertionError("Fail: $c is not synthetic: ${c.modifiers}")
}
fun box(): String {
check(C::f.javaClass)
check(C::r.javaClass)
check(C()::f.javaClass)
check(C()::r.javaClass)
return "OK"
}
@@ -7,7 +7,7 @@ public final class A {
}
@kotlin.Metadata
final class NoReceiverInCallableReferenceClassesKt$A_bar$1 {
synthetic final class NoReceiverInCallableReferenceClassesKt$A_bar$1 {
public final static field INSTANCE: kotlin.reflect.KProperty1
static method <clinit>(): void
method <init>(): void
@@ -18,7 +18,7 @@ final class NoReceiverInCallableReferenceClassesKt$A_bar$1 {
}
@kotlin.Metadata
final class NoReceiverInCallableReferenceClassesKt$A_foo$1 {
synthetic final class NoReceiverInCallableReferenceClassesKt$A_foo$1 {
public final static field INSTANCE: NoReceiverInCallableReferenceClassesKt$A_foo$1
inner class NoReceiverInCallableReferenceClassesKt$A_foo$1
static method <clinit>(): void
@@ -31,7 +31,7 @@ final class NoReceiverInCallableReferenceClassesKt$A_foo$1 {
}
@kotlin.Metadata
final class NoReceiverInCallableReferenceClassesKt$aBar$1 {
synthetic final class NoReceiverInCallableReferenceClassesKt$aBar$1 {
method <init>(p0: A): void
public @org.jetbrains.annotations.Nullable method get(): java.lang.Object
public method getName(): java.lang.String
@@ -40,7 +40,7 @@ final class NoReceiverInCallableReferenceClassesKt$aBar$1 {
}
@kotlin.Metadata
final class NoReceiverInCallableReferenceClassesKt$aFoo$1 {
synthetic final class NoReceiverInCallableReferenceClassesKt$aFoo$1 {
inner class NoReceiverInCallableReferenceClassesKt$aFoo$1
method <init>(p0: A): void
public final method getName(): java.lang.String