diff --git a/compiler/testData/diagnostics/tests/Override.jet b/compiler/testData/diagnostics/tests/Override.jet deleted file mode 100644 index d7d6997e0cd..00000000000 --- a/compiler/testData/diagnostics/tests/Override.jet +++ /dev/null @@ -1,112 +0,0 @@ -// FILE: f.kt -package override.normal - trait MyTrait { - fun foo() - val pr : Unit - } - - abstract class MyAbstractClass { - abstract fun bar() - abstract val prr : Unit - - } - - open class MyClass() : MyTrait, MyAbstractClass() { - override fun foo() {} - override fun bar() {} - - override val pr : Unit = #() - override val prr : Unit = #() - } - - class MyChildClass() : MyClass() {} - - class MyIllegalClass : MyTrait, MyAbstractClass() {} - - class MyIllegalClass2() : MyTrait, MyAbstractClass() { - override fun foo() {} - override val pr : Unit = #() - override val prr : Unit = #() - } - - class MyIllegalClass3() : MyTrait, MyAbstractClass() { - override fun bar() {} - override val pr : Unit = #() - override val prr : Unit = #() - } - - class MyIllegalClass4() : MyTrait, MyAbstractClass() { - fun foo() {} - val pr : Unit - override fun other() {} - override val otherPr : Int = 1 - } - - class MyChildClass1() : MyClass() { - fun foo() {} - val pr : Unit = #() - override fun bar() {} - override val prr : Unit = #() - } - -// FILE: f.kt - -package override.generics - trait MyTrait { - fun foo(t: T) : T - } - - abstract class MyAbstractClass { - abstract fun bar(t: T) : T - abstract val pr : T - } - - trait MyProps { - val p : T - } - - open class MyGenericClass(t : T) : MyTrait, MyAbstractClass(), MyProps { - override fun foo(t: T) = t - override fun bar(t: T) = t - override val p : T = t - override val pr : T = t - } - - class MyChildClass() : MyGenericClass(1) {} - class MyChildClass1(t : T) : MyGenericClass(t) {} - class MyChildClass2(t : T) : MyGenericClass(t) { - fun foo(t: T) = t - val pr : T = t - override fun bar(t: T) = t - override val p : T = t - } - - open class MyClass() : MyTrait, MyAbstractClass() { - override fun foo(i: Int) = i - override fun bar(s: String) = s - override val pr : String = "1" - } - - abstract class MyAbstractClass1 : MyTrait, MyAbstractClass() { - override fun foo(i: Int) = i - override fun bar(s: String) = s - } - - class MyIllegalGenericClass1 : MyTrait, MyAbstractClass() {} - class MyIllegalGenericClass2(r : R) : MyTrait, MyAbstractClass() { - override fun foo(r: R) = r - override val pr : R = r - } - class MyIllegalClass1 : MyTrait, MyAbstractClass() {} - abstract class MyLegalAbstractClass1 : MyTrait, MyAbstractClass() {} - - class MyIllegalClass2(t : T) : MyTrait, MyAbstractClass() { - fun foo(t: T) = t - fun bar(t: T) = t - val pr : T = t - } - abstract class MyLegalAbstractClass2(t : T) : MyTrait, MyAbstractClass() { - fun foo(t: T) = t - fun bar(t: T) = t - val pr : T = t - } \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/override/AbstractFunImplemented.jet b/compiler/testData/diagnostics/tests/override/AbstractFunImplemented.jet new file mode 100644 index 00000000000..ef6b6fa41b8 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/AbstractFunImplemented.jet @@ -0,0 +1,7 @@ +abstract class A { + abstract fun foo(): Int +} + +class B() : A() { + override fun foo() = 1 +} diff --git a/compiler/testData/diagnostics/tests/override/AbstractFunNotImplemented.jet b/compiler/testData/diagnostics/tests/override/AbstractFunNotImplemented.jet new file mode 100644 index 00000000000..828620f7fbf --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/AbstractFunNotImplemented.jet @@ -0,0 +1,6 @@ +abstract class A { + abstract fun foo(): Int +} + +class B() : A() { +} diff --git a/compiler/testData/diagnostics/tests/override/AbstractValImplemented.jet b/compiler/testData/diagnostics/tests/override/AbstractValImplemented.jet new file mode 100644 index 00000000000..a9669a69142 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/AbstractValImplemented.jet @@ -0,0 +1,7 @@ +abstract class A { + abstract val i: Int +} + +class B() : A() { + override val i = 1 +} diff --git a/compiler/testData/diagnostics/tests/override/AbstractValNotImplemented.jet b/compiler/testData/diagnostics/tests/override/AbstractValNotImplemented.jet new file mode 100644 index 00000000000..8fcad310a23 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/AbstractValNotImplemented.jet @@ -0,0 +1,6 @@ +abstract class A { + abstract val i: Int +} + +class B() : A() { +} diff --git a/compiler/testData/diagnostics/tests/override/AbstractVarImplemented.jet b/compiler/testData/diagnostics/tests/override/AbstractVarImplemented.jet new file mode 100644 index 00000000000..b0c3055b5fa --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/AbstractVarImplemented.jet @@ -0,0 +1,7 @@ +abstract class A { + abstract var i: Int +} + +class B() : A() { + override var i = 1 +} diff --git a/compiler/testData/diagnostics/tests/override/AbstractVarNotImplemented.jet b/compiler/testData/diagnostics/tests/override/AbstractVarNotImplemented.jet new file mode 100644 index 00000000000..b843856edce --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/AbstractVarNotImplemented.jet @@ -0,0 +1,6 @@ +abstract class A { + abstract var i: Int +} + +class B() : A() { +} diff --git a/compiler/testData/diagnostics/tests/override/DelegationFun.jet b/compiler/testData/diagnostics/tests/override/DelegationFun.jet new file mode 100644 index 00000000000..e2236b35b97 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/DelegationFun.jet @@ -0,0 +1,7 @@ +package delegation + +trait Aaa { + fun foo() +} + +class Bbb(aaa: Aaa) : Aaa by aaa diff --git a/compiler/testData/diagnostics/tests/override/DelegationVal.jet b/compiler/testData/diagnostics/tests/override/DelegationVal.jet new file mode 100644 index 00000000000..076e5775265 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/DelegationVal.jet @@ -0,0 +1,7 @@ +package delegation + +trait Aaa { + val i: Int +} + +class Bbb(aaa: Aaa) : Aaa by aaa diff --git a/compiler/testData/diagnostics/tests/override/DelegationVar.jet b/compiler/testData/diagnostics/tests/override/DelegationVar.jet new file mode 100644 index 00000000000..5b8b34d62be --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/DelegationVar.jet @@ -0,0 +1,7 @@ +package delegation + +trait Aaa { + var i: Int +} + +class Bbb(aaa: Aaa) : Aaa by aaa diff --git a/compiler/testData/diagnostics/tests/override/Generics.jet b/compiler/testData/diagnostics/tests/override/Generics.jet new file mode 100644 index 00000000000..2e46a163bd0 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/Generics.jet @@ -0,0 +1,60 @@ +package override.generics + +trait MyTrait { + fun foo(t: T) : T +} + +abstract class MyAbstractClass { + abstract fun bar(t: T) : T + abstract val pr : T +} + +trait MyProps { + val p : T +} + +open class MyGenericClass(t : T) : MyTrait, MyAbstractClass(), MyProps { + override fun foo(t: T) = t + override fun bar(t: T) = t + override val p : T = t + override val pr : T = t +} + +class MyChildClass() : MyGenericClass(1) {} +class MyChildClass1(t : T) : MyGenericClass(t) {} +class MyChildClass2(t : T) : MyGenericClass(t) { + fun foo(t: T) = t + val pr : T = t + override fun bar(t: T) = t + override val p : T = t +} + +open class MyClass() : MyTrait, MyAbstractClass() { + override fun foo(i: Int) = i + override fun bar(s: String) = s + override val pr : String = "1" +} + +abstract class MyAbstractClass1 : MyTrait, MyAbstractClass() { + override fun foo(i: Int) = i + override fun bar(s: String) = s +} + +class MyIllegalGenericClass1 : MyTrait, MyAbstractClass() {} +class MyIllegalGenericClass2(r : R) : MyTrait, MyAbstractClass() { + override fun foo(r: R) = r + override val pr : R = r +} +class MyIllegalClass1 : MyTrait, MyAbstractClass() {} +abstract class MyLegalAbstractClass1 : MyTrait, MyAbstractClass() {} + +class MyIllegalClass2(t : T) : MyTrait, MyAbstractClass() { + fun foo(t: T) = t + fun bar(t: T) = t + val pr : T = t +} +abstract class MyLegalAbstractClass2(t : T) : MyTrait, MyAbstractClass() { + fun foo(t: T) = t + fun bar(t: T) = t + val pr : T = t +} diff --git a/compiler/testData/diagnostics/tests/override/NonGenerics.jet b/compiler/testData/diagnostics/tests/override/NonGenerics.jet new file mode 100644 index 00000000000..59d099ed572 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/NonGenerics.jet @@ -0,0 +1,50 @@ +package override.normal + +trait MyTrait { + fun foo() + val pr : Unit +} + +abstract class MyAbstractClass { + abstract fun bar() + abstract val prr : Unit + +} + +open class MyClass() : MyTrait, MyAbstractClass() { + override fun foo() {} + override fun bar() {} + + override val pr : Unit = #() + override val prr : Unit = #() +} + +class MyChildClass() : MyClass() {} + +class MyIllegalClass : MyTrait, MyAbstractClass() {} + +class MyIllegalClass2() : MyTrait, MyAbstractClass() { + override fun foo() {} + override val pr : Unit = #() + override val prr : Unit = #() +} + +class MyIllegalClass3() : MyTrait, MyAbstractClass() { + override fun bar() {} + override val pr : Unit = #() + override val prr : Unit = #() +} + +class MyIllegalClass4() : MyTrait, MyAbstractClass() { + fun foo() {} + val pr : Unit + override fun other() {} + override val otherPr : Int = 1 +} + +class MyChildClass1() : MyClass() { + fun foo() {} + val pr : Unit = #() + override fun bar() {} + override val prr : Unit = #() +}