[KAPT] Fix stub generation for anonymous delegates

Replace anonymous classes with superclass in delegate properties
#KT-34838 Fixed
This commit is contained in:
Andrey Zinovyev
2021-02-03 17:27:41 +03:00
committed by GitHub
parent 60a05dded0
commit 923a4427c5
7 changed files with 184 additions and 49 deletions
@@ -0,0 +1,34 @@
import kotlin.reflect.KProperty
class Test {
var broken by object {
operator fun getValue(obj: Test, property: KProperty<*>) = Any()
operator fun setValue(obj: Test, property: KProperty<*>, any: Any) {
}
}
var overridden by object : java.io.Serializable {
operator fun getValue(obj: Test, property: KProperty<*>) = Any()
operator fun setValue(obj: Test, property: KProperty<*>, any: Any) {
}
}
private val lazyProp by lazy {
object : Runnable {
override fun run() {}
}
}
}
var delegate by object {
operator fun getValue(nothing: Nothing?, property: KProperty<*>) = Any()
operator fun setValue(nothing: Nothing?, property: KProperty<*>, any: Any) {
//empty
}
}
@@ -0,0 +1,60 @@
import java.lang.System;
@kotlin.Metadata()
public final class AnonymousDelegateKt {
public AnonymousDelegateKt() {
super();
}
@org.jetbrains.annotations.NotNull()
private static final java.lang.Object delegate$delegate = null;
@org.jetbrains.annotations.NotNull()
public static final java.lang.Object getDelegate() {
return null;
}
public static final void setDelegate(@org.jetbrains.annotations.NotNull()
java.lang.Object p0) {
}
}
////////////////////
import java.lang.System;
@kotlin.Metadata()
public final class Test {
@org.jetbrains.annotations.NotNull()
private final java.lang.Object broken$delegate = null;
@org.jetbrains.annotations.NotNull()
private final java.io.Serializable overridden$delegate = null;
private final kotlin.Lazy lazyProp$delegate = null;
public Test() {
super();
}
@org.jetbrains.annotations.NotNull()
public final java.lang.Object getBroken() {
return null;
}
public final void setBroken(@org.jetbrains.annotations.NotNull()
java.lang.Object p0) {
}
@org.jetbrains.annotations.NotNull()
public final java.lang.Object getOverridden() {
return null;
}
public final void setOverridden(@org.jetbrains.annotations.NotNull()
java.lang.Object p0) {
}
private final java.lang.Runnable getLazyProp() {
return null;
}
}