Quickfix for NOTHING_TO_OVERRIDE: add function to one of supertypes.

This commit is contained in:
Michał Sapalski
2013-04-22 15:26:54 +02:00
committed by Andrey Breslav
parent e96cf045dd
commit d4fc814d76
22 changed files with 504 additions and 13 deletions
@@ -0,0 +1,8 @@
// "Add 'open fun f()' to 'A'" "true"
open class A {
open fun f() {
}
}
class B : A() {
<caret>override fun f() {}
}
@@ -0,0 +1,7 @@
// "Add 'abstract fun f()' to 'A'" "true"
abstract class A {
abstract fun f()
}
class B : A() {
<caret>override fun f() {}
}
@@ -0,0 +1,8 @@
// "Add 'open fun f()' to 'A'" "true"
trait A
{
open fun f()
}
class B : A {
<caret>override fun f() {}
}
@@ -0,0 +1,9 @@
// "Add 'open fun f(): Int' to 'A'" "true"
open class A {
open fun f(): Int {
throw UnsupportedOperationException()
}
}
class B : A() {
<caret>override fun f(): Int = 5
}
@@ -0,0 +1,7 @@
// "Add 'open fun f()' to 'A'" "true"
trait A {
open fun f()
}
class B : A {
<caret>override fun f() {}
}
@@ -0,0 +1,10 @@
// "Add function to supertype..." "true"
open class A {
}
open class B : A() {
open fun f() {
}
}
class C : B() {
<caret>override fun f() {}
}
@@ -0,0 +1,8 @@
// "Add function to supertype..." "true"
trait A {
open fun foo()
}
trait B {}
class C: A, B {
<caret>override fun foo() {}
}
@@ -1,11 +0,0 @@
// "Change function signature to 'override fun f(a: Int)'" "false"
// ERROR: 'f' overrides nothing
// ACTION: Remove 'override' modifier
open class A {
open fun foo() {}
fun f(a: Int) {}
}
class B : A(){
<caret>override fun f(a: String) {}
}
@@ -0,0 +1,6 @@
// "Add 'open fun f()' to 'A'" "true"
open class A {
}
class B : A() {
<caret>override fun f() {}
}
@@ -0,0 +1,6 @@
// "Add 'abstract fun f()' to 'A'" "true"
abstract class A {
}
class B : A() {
<caret>override fun f() {}
}
@@ -0,0 +1,5 @@
// "Add 'open fun f()' to 'A'" "true"
trait A
class B : A {
<caret>override fun f() {}
}
@@ -0,0 +1,6 @@
// "Add 'open fun f(): Int' to 'A'" "true"
open class A {
}
class B : A() {
<caret>override fun f(): Int = 5
}
@@ -0,0 +1,6 @@
// "Add 'open fun f()' to 'A'" "true"
trait A {
}
class B : A {
<caret>override fun f() {}
}
@@ -0,0 +1,8 @@
// "Add function to supertype..." "true"
open class A {
}
open class B : A() {
}
class C : B() {
<caret>override fun f() {}
}
@@ -0,0 +1,6 @@
// "Add function to supertype..." "true"
trait A {}
trait B {}
class C: A, B {
<caret>override fun foo() {}
}
@@ -1,5 +1,6 @@
// "Change function signature to 'override fun f(a: Int)'" "false"
// ERROR: 'f' overrides nothing
// ACTION: Add 'open fun f(a: String)' to 'A'
// ACTION: Remove 'override' modifier
open class A {
open fun foo() {}