QuickFix for OVERRIDING_FINAL_MEMBER

This commit is contained in:
Wojciech Lopata
2013-02-26 17:15:26 +01:00
committed by Evgeny Gerashchenko
parent 08ce27e97e
commit cee45f6a0a
12 changed files with 239 additions and 0 deletions
@@ -0,0 +1,20 @@
// "Make 'foo' in A, X and Y open" "true"
open class A {
open fun foo() {}
}
trait X {
open fun foo() {}
}
trait Y {
open fun foo() {}
}
trait Z {
fun foo() {}
}
class B : A(), X, Y, Z {
override<caret> fun foo() {}
}
@@ -0,0 +1,8 @@
// "Make A.foo open" "true"
open class A {
open fun foo() {}
}
class B : A() {
override<caret> fun foo() {}
}
@@ -0,0 +1,8 @@
// "Make A.x open" "true"
open class A {
open var x = 42;
}
class B : A() {
override<caret> var x = 24;
}
@@ -0,0 +1,20 @@
// "Make 'foo' in A, X and Y open" "true"
open class A {
fun foo() {}
}
trait X {
final fun foo() {}
}
trait Y {
final fun foo() {}
}
trait Z {
fun foo() {}
}
class B : A(), X, Y, Z {
override<caret> fun foo() {}
}
@@ -0,0 +1,5 @@
// "Make Object.notify open" "false"
// ERROR: 'notify' in 'Object' is final and cannot be overridden
class A : Object() {
override<caret> fun notify() {}
}
@@ -0,0 +1,8 @@
// "Make A.foo open" "true"
open class A {
fun foo() {}
}
class B : A() {
override<caret> fun foo() {}
}
@@ -0,0 +1,8 @@
// "Make A.x open" "true"
open class A {
final var x = 42;
}
class B : A() {
override<caret> var x = 24;
}
@@ -0,0 +1,12 @@
// "Make 'ordinal' in E and X open" "false"
// ERROR: This type is final, so it cannot be inherited from
// ERROR: Cannot access '<init>': it is 'private' in 'E'
// ERROR: 'ordinal' in 'E' is final and cannot be overridden
enum class E {}
trait X {
final fun ordinal() : Int = 42
}
class A : E(), X {
override<caret> fun ordinal() : Int = 24;
}