[FIR] Supertype and inheritance checkers group
This commit is contained in:
+5
@@ -0,0 +1,5 @@
|
||||
class A
|
||||
|
||||
interface C
|
||||
|
||||
enum class B : C, <!CLASS_IN_SUPERTYPE_FOR_ENUM!>A<!>(), Any()
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
FILE: classInSupertypeForEnum.kt
|
||||
public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface C : R|kotlin/Any| {
|
||||
}
|
||||
public final enum class B : R|C|, R|A|, R|kotlin/Any|, R|kotlin/Enum<B>| {
|
||||
private constructor(): R|B| {
|
||||
super<R|kotlin/Enum<B>|>()
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<B>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|B| {
|
||||
}
|
||||
|
||||
}
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>A(val s: String)<!>
|
||||
|
||||
interface <!CONSTRUCTOR_IN_INTERFACE!>B constructor(val s: String)<!>
|
||||
|
||||
interface C {
|
||||
<!CONSTRUCTOR_IN_INTERFACE!>constructor(val s: String)<!> {}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
FILE: constructorInInterface.kt
|
||||
public abstract interface A : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface B : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface C : R|kotlin/Any| {
|
||||
public constructor(s: R|kotlin/String|): R|C| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
class A
|
||||
|
||||
interface B : <!DELEGATION_IN_INTERFACE, INTERFACE_WITH_SUPERCLASS!>A<!> by a {
|
||||
val a: A
|
||||
}
|
||||
|
||||
val test = A()
|
||||
|
||||
interface C : <!DELEGATION_IN_INTERFACE, INTERFACE_WITH_SUPERCLASS!>A<!> by test
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
FILE: delegationInInterface.kt
|
||||
public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface B : R|A| {
|
||||
local final field <$$delegate_0>: R|A|
|
||||
|
||||
public abstract val a: R|A|
|
||||
public get(): R|A|
|
||||
|
||||
}
|
||||
public final val test: R|A| = R|/A.A|()
|
||||
public get(): R|A|
|
||||
public abstract interface C : R|A| {
|
||||
local final field <$$delegate_0>: R|A|
|
||||
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
class A
|
||||
|
||||
interface B : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFACE!>A<!>()
|
||||
|
||||
interface C
|
||||
class D
|
||||
|
||||
interface E : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFACE!>A<!>(), C, D()
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
FILE: interfaceWithSuperclass.kt
|
||||
public final class A : R|kotlin/Any| {
|
||||
public constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface B : R|A| {
|
||||
}
|
||||
public abstract interface C : R|kotlin/Any| {
|
||||
}
|
||||
public final class D : R|kotlin/Any| {
|
||||
public constructor(): R|D| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface E : R|A|, R|C|, R|D| {
|
||||
}
|
||||
Vendored
+25
@@ -0,0 +1,25 @@
|
||||
interface A {
|
||||
<!ANY_METHOD_IMPLEMENTED_IN_INTERFACE!>override fun toString() = "Hello"<!>
|
||||
<!ANY_METHOD_IMPLEMENTED_IN_INTERFACE!>override fun equals(other: Any?) = true<!>
|
||||
<!ANY_METHOD_IMPLEMENTED_IN_INTERFACE!>override fun hashCode(): Int {
|
||||
return 42;
|
||||
}<!>
|
||||
}
|
||||
|
||||
interface B {
|
||||
override fun toString(): String
|
||||
override fun equals(other: Any?): Boolean
|
||||
override fun hashCode(): Int
|
||||
}
|
||||
|
||||
interface C {
|
||||
<!ANY_METHOD_IMPLEMENTED_IN_INTERFACE!>override operator fun toString(): String = "Rest"<!>
|
||||
<!ANY_METHOD_IMPLEMENTED_IN_INTERFACE!>override operator fun equals(other: Any?): Boolean = false<!>
|
||||
<!ANY_METHOD_IMPLEMENTED_IN_INTERFACE!>override operator fun hashCode(): Int = 2<!>
|
||||
}
|
||||
|
||||
interface D {
|
||||
override operator fun toString(): String
|
||||
override operator fun equals(other: Any?): Boolean
|
||||
override operator fun hashCode(): Int
|
||||
}
|
||||
Vendored
+45
@@ -0,0 +1,45 @@
|
||||
FILE: methodOfAnyImplementedInInterface.kt
|
||||
public abstract interface A : R|kotlin/Any| {
|
||||
public open override fun toString(): R|kotlin/String| {
|
||||
^toString String(Hello)
|
||||
}
|
||||
|
||||
public open override fun equals(other: R|kotlin/Any?|): R|kotlin/Boolean| {
|
||||
^equals Boolean(true)
|
||||
}
|
||||
|
||||
public open override fun hashCode(): R|kotlin/Int| {
|
||||
^hashCode Int(42)
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface B : R|kotlin/Any| {
|
||||
public abstract override fun toString(): R|kotlin/String|
|
||||
|
||||
public abstract override fun equals(other: R|kotlin/Any?|): R|kotlin/Boolean|
|
||||
|
||||
public abstract override fun hashCode(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
public abstract interface C : R|kotlin/Any| {
|
||||
public open override operator fun toString(): R|kotlin/String| {
|
||||
^toString String(Rest)
|
||||
}
|
||||
|
||||
public open override operator fun equals(other: R|kotlin/Any?|): R|kotlin/Boolean| {
|
||||
^equals Boolean(false)
|
||||
}
|
||||
|
||||
public open override operator fun hashCode(): R|kotlin/Int| {
|
||||
^hashCode Int(2)
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface D : R|kotlin/Any| {
|
||||
public abstract override operator fun toString(): R|kotlin/String|
|
||||
|
||||
public abstract override operator fun equals(other: R|kotlin/Any?|): R|kotlin/Boolean|
|
||||
|
||||
public abstract override operator fun hashCode(): R|kotlin/Int|
|
||||
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
sealed class A
|
||||
|
||||
val b = <!SEALED_CLASS_CONSTRUCTOR_CALL!>A<!>()
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
FILE: sealedClassConstructorCall.kt
|
||||
public sealed class A : R|kotlin/Any| {
|
||||
private constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final val b: R|A| = R|/A.A|()
|
||||
public get(): R|A|
|
||||
@@ -0,0 +1,40 @@
|
||||
sealed class A
|
||||
|
||||
<!REDECLARATION!>class B : A()<!>
|
||||
|
||||
interface C : <!INTERFACE_WITH_SUPERCLASS!>A<!>
|
||||
|
||||
interface D : C, <!INTERFACE_WITH_SUPERCLASS!>A<!>
|
||||
|
||||
class E : B, A()
|
||||
|
||||
sealed class P {
|
||||
object H: P()
|
||||
class J : P()
|
||||
|
||||
object T {
|
||||
object V : P()
|
||||
class M : P()
|
||||
}
|
||||
|
||||
val p: P = object : <!SEALED_SUPERTYPE_IN_LOCAL_CLASS!>P<!>() {
|
||||
|
||||
}
|
||||
|
||||
val r = object : <!SEALED_SUPERTYPE_IN_LOCAL_CLASS!>P<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
class K : P()
|
||||
|
||||
<!REDECLARATION!>object B<!> {
|
||||
class I : <!SEALED_SUPERTYPE!>P<!>()
|
||||
}
|
||||
|
||||
fun test() {
|
||||
class L : <!SEALED_SUPERTYPE_IN_LOCAL_CLASS!>P<!>()
|
||||
val a = object : <!SEALED_SUPERTYPE_IN_LOCAL_CLASS!>P<!>() {
|
||||
|
||||
}
|
||||
}
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
FILE: sealedSupertype.kt
|
||||
public sealed class A : R|kotlin/Any| {
|
||||
private constructor(): R|A| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final class B : R|A| {
|
||||
public constructor(): R|B| {
|
||||
super<R|A|>()
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface C : R|A| {
|
||||
}
|
||||
public abstract interface D : R|C|, R|A| {
|
||||
}
|
||||
public final class E : R|B|, R|A| {
|
||||
public constructor(): R|E| {
|
||||
super<R|A|>()
|
||||
}
|
||||
|
||||
}
|
||||
public sealed class P : R|kotlin/Any| {
|
||||
private constructor(): R|P| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final object H : R|P| {
|
||||
private constructor(): R|P.H| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final class J : R|P| {
|
||||
public constructor(): R|P.J| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final object T : R|kotlin/Any| {
|
||||
private constructor(): R|P.T| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final object V : R|P| {
|
||||
private constructor(): R|P.T.V| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final class M : R|P| {
|
||||
public constructor(): R|P.T.M| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final val p: R|P| = object : R|P| {
|
||||
private constructor(): R|<anonymous>| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public get(): R|P|
|
||||
|
||||
public final val r: R|<anonymous>| = object : R|P| {
|
||||
private constructor(): R|<anonymous>| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public get(): R|<anonymous>|
|
||||
|
||||
}
|
||||
public final class K : R|P| {
|
||||
public constructor(): R|K| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
public final object B : R|kotlin/Any| {
|
||||
private constructor(): R|B| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
public final class I : R|P| {
|
||||
public constructor(): R|B.I| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
local final class L : R|P| {
|
||||
public constructor(): R|L| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
lval a: R|<anonymous>| = object : R|P| {
|
||||
private constructor(): R|<anonymous>| {
|
||||
super<R|P|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Vendored
+1
-1
@@ -2,7 +2,7 @@ open class A {
|
||||
open fun foo() {}
|
||||
}
|
||||
|
||||
interface ATrait : A {
|
||||
interface ATrait : <!INTERFACE_WITH_SUPERCLASS!>A<!> {
|
||||
override fun foo() {
|
||||
<!SUPERCLASS_NOT_ACCESSIBLE_FROM_INTERFACE!>super<A><!>.foo()
|
||||
}
|
||||
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
interface A
|
||||
|
||||
interface B : <!SUPERTYPE_INITIALIZED_IN_INTERFACE!>A<!>()
|
||||
|
||||
class C
|
||||
|
||||
interface D : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFACE!>C<!>()
|
||||
|
||||
interface E : <!INTERFACE_WITH_SUPERCLASS, SUPERTYPE_INITIALIZED_IN_INTERFACE!>Any<!>()
|
||||
|
||||
interface F : A, <!SUPERTYPE_INITIALIZED_IN_INTERFACE!>B<!>(), <!INTERFACE_WITH_SUPERCLASS!>C<!>, D(), Any() {
|
||||
|
||||
}
|
||||
Vendored
+17
@@ -0,0 +1,17 @@
|
||||
FILE: supertypeInitializedInInterface.kt
|
||||
public abstract interface A : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface B : R|A| {
|
||||
}
|
||||
public final class C : R|kotlin/Any| {
|
||||
public constructor(): R|C| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
public abstract interface D : R|C| {
|
||||
}
|
||||
public abstract interface E : R|kotlin/Any| {
|
||||
}
|
||||
public abstract interface F : R|A|, R|B|, R|C|, R|D|, R|kotlin/Any| {
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
enum class A<<!TYPE_PARAMETERS_IN_ENUM!>B<!>, C : B, D>
|
||||
|
||||
enum class B
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
FILE: typeParametersInEnum.kt
|
||||
public final enum class A<B, C : R|B|, D> : R|kotlin/Enum<A<B, C, D>>| {
|
||||
private constructor<B, C : R|B|, D>(): R|A<B, C, D>| {
|
||||
super<R|kotlin/Enum<A<B, C, D>>|>()
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<A>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|A| {
|
||||
}
|
||||
|
||||
}
|
||||
public final enum class B : R|kotlin/Enum<B>| {
|
||||
private constructor(): R|B| {
|
||||
super<R|kotlin/Enum<B>|>()
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<B>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|B| {
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user