Support declarations returning object literals in ultra-light classes

This commit is contained in:
Denis Zharkov
2018-11-20 12:24:26 +03:00
parent 28f20a97f8
commit 7de8b4de4e
8 changed files with 250 additions and 46 deletions
@@ -0,0 +1,101 @@
public final class Prop /* Prop*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.Object someProp;
@null()
public Prop();
}
public final class Fun /* Fun*/ {
@null()
public Fun();
@org.jetbrains.annotations.NotNull()
private final java.lang.Object someFun();
}
public final class ArrayOfAnonymous /* ArrayOfAnonymous*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.Object[] a1;
@null()
public ArrayOfAnonymous();
@org.jetbrains.annotations.NotNull()
public final java.lang.Object[] getA1();
}
final class C /* C*/ {
@null()
private final int y;
@org.jetbrains.annotations.NotNull()
private final kotlin.jvm.functions.Function0<java.lang.Object> initChild;
@null()
public C(@null() int);
@null()
public final int getY();
@org.jetbrains.annotations.NotNull()
public final kotlin.jvm.functions.Function0<java.lang.Object> getInitChild();
}
public abstract class Super /* Super*/ {
@null()
public Super();
@org.jetbrains.annotations.Nullable()
public abstract java.lang.Object getA();
}
public final class Sub /* Sub*/ extends Super {
@org.jetbrains.annotations.NotNull()
private final java.lang.Object[] a;
@null()
public Sub();
@org.jetbrains.annotations.NotNull()
public java.lang.Object[] getA();
}
public final class ValidPublicSupertype /* ValidPublicSupertype*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.Runnable x;
@null()
public ValidPublicSupertype();
@org.jetbrains.annotations.NotNull()
public final java.lang.Runnable bar();
@org.jetbrains.annotations.NotNull()
public final java.lang.Runnable getX();
}
public abstract interface I /* I*/ {
}
public final class InvalidPublicSupertype /* InvalidPublicSupertype*/ {
@org.jetbrains.annotations.NotNull()
private final java.lang.Runnable x;
@null()
public InvalidPublicSupertype();
@org.jetbrains.annotations.NotNull()
public final java.lang.Runnable bar();
@org.jetbrains.annotations.NotNull()
public final java.lang.Runnable getX();
}
@@ -1,22 +1,21 @@
/** should load cls */
class Prop {
private val someProp = object { }
}
/** should load cls */
class Fun {
private fun someFun() = object { }
}
/** should load cls */
class Array {
class ArrayOfAnonymous {
val a1 = arrayOf(
object { val fy = "text"}
)
}
/** should load cls */
private class C(val y: Int) {
val initChild = { ->
object {
@@ -28,14 +27,34 @@ private class C(val y: Int) {
}
class Super {
val a: Any?
abstract class Super {
abstract val a: Any?
}
/** should load cls */
class Sub {
class Sub : Super() {
override val a = arrayOf(
object { val fy = "text"}
)
}
}
class ValidPublicSupertype {
val x = object : Runnable {
override fun run() {}
}
fun bar() = object : Runnable {
override fun run() {}
}
}
interface I
class InvalidPublicSupertype {
val x = object : Runnable, I {
override fun run() {}
}
fun bar() = object : Runnable, I {
override fun run() {}
}
}