FIR: introduce not implemented checker

This commit is contained in:
Mikhail Glukhikh
2021-03-18 22:24:14 +03:00
parent 9ae41f5c07
commit 9ce8420491
50 changed files with 320 additions and 147 deletions
@@ -1,6 +0,0 @@
abstract class A {
abstract fun foo(): Int
}
class B() : A() {
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
abstract class A {
abstract fun foo(): Int
}
@@ -1,6 +0,0 @@
abstract class A {
abstract val i: Int
}
class B() : A() {
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
abstract class A {
abstract val i: Int
}
@@ -1,6 +0,0 @@
abstract class A {
abstract var i: Int
}
class B() : A() {
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
abstract class A {
abstract var i: Int
}
@@ -21,21 +21,21 @@ open class MyClass() : MyTrait, MyAbstractClass() {
class MyChildClass() : MyClass() {}
class MyIllegalClass : MyTrait, MyAbstractClass() {}
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class MyIllegalClass<!> : MyTrait, MyAbstractClass() {}
class MyIllegalClass2() : MyTrait, MyAbstractClass() {
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class MyIllegalClass2<!>() : MyTrait, MyAbstractClass() {
override fun foo() {}
override val pr : Unit = Unit
override val prr : Unit = Unit
}
class MyIllegalClass3() : MyTrait, MyAbstractClass() {
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class MyIllegalClass3<!>() : MyTrait, MyAbstractClass() {
override fun bar() {}
override val pr : Unit = Unit
override val prr : Unit = Unit
}
class MyIllegalClass4() : MyTrait, MyAbstractClass() {
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class MyIllegalClass4<!>() : MyTrait, MyAbstractClass() {
fun foo() {}
<!MUST_BE_INITIALIZED_OR_BE_ABSTRACT!>val pr : Unit<!>
override fun other() {}
@@ -1,9 +0,0 @@
abstract class A {
abstract override fun toString(): String
}
interface B
abstract class C : A(), B
class Test : C()
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
abstract class A {
abstract override fun toString(): String
}
@@ -1,14 +0,0 @@
interface A {
fun test() {
}
}
interface B : A {
override fun test()
}
interface C : A
interface D : C, B
class K : D
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface A {
fun test() {
}
@@ -1,10 +0,0 @@
interface Runnable {
fun run()
}
class C {
fun f() {
class MyRunnable(): Runnable {
}
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
interface Runnable {
fun run()
}
@@ -6,6 +6,6 @@ open class Q {
val x: Int = 42
}
class R : P, Q()
<!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>class R<!> : P, Q()
val s: Q = object : Q(), P {}
@@ -22,7 +22,7 @@ abstract class A2 {
abstract fun foo()
}
class B2 : A2()
<!ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED!>class B2<!> : A2()
class C2 : B2() {
override fun foo() {}
}