Quickfix for NOTHING_TO_OVERRIDE
This commit is contained in:
committed by
Andrey Breslav
parent
3760922e84
commit
5b1f93b42e
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
}
|
||||
|
||||
class B : A {
|
||||
<caret>override fun f(a: Int) {}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// "Change function signature..." "true"
|
||||
// ERROR: <html>Class 'B' must be declared abstract or implement abstract member<br/><b>abstract</b> <b>fun</b> f(a: jet.String): jet.Unit <i>defined in</i> A</html>
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
fun f(a: String)
|
||||
}
|
||||
|
||||
class B : A {
|
||||
<caret>override fun f(a: Int) {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'public override fun f(a: Int)'" "true"
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
}
|
||||
|
||||
class B : A {
|
||||
public <caret>override fun f(a: Int) {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
open class A {
|
||||
open fun f(a: Int) {}
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(a: Int) {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
abstract class A {
|
||||
abstract fun f(a: Int)
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(a: Int) {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
}
|
||||
|
||||
trait B : A {
|
||||
<caret>override fun f(a: Int)
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(x: Int, t: String, z: Double)'" "true"
|
||||
open class A {
|
||||
open fun f(x: Int, y: String, z: Double) {}
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(x: Int, t: String, z: Double) {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(y: Int, x: String)'" "true"
|
||||
open class A {
|
||||
open fun f(a: Int, b: String) {}
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(y: Int, x: String) {}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// "Change function signature to 'override fun f()'" "true"
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
|
||||
open class B : A() {
|
||||
open override fun f() {}
|
||||
}
|
||||
|
||||
class C : B() {
|
||||
<caret>override fun f() {}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// "Change function signature to 'override fun f(a: Int): Int'" "true"
|
||||
open class A {
|
||||
open fun f(a: Int): Int {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(a: Int): Int = 7
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
}
|
||||
|
||||
class B : A {
|
||||
<caret>override fun f(a: Int) {}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// "Change function signature to 'override fun f(a: Int): Int'" "true"
|
||||
// ERROR: <html>Type mismatch.<table><tr><td>Required:</td><td>jet.Int</td></tr><tr><td>Found:</td><td>jet.String</td></tr></table></html>
|
||||
open class A {
|
||||
open fun f(a: Int): Int = 0
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
// Note that when parameter types match, RETURN_TYPE_MISMATCH_ON_OVERRIDE error is reported
|
||||
// and "Change function signature" quickfix is not present.
|
||||
<caret>override fun f(a: Int): Int = "FOO"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// "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 @@
|
||||
// "Change function signature to 'protected override fun next(p0: Int): Int'" "true"
|
||||
import java.util.Random
|
||||
|
||||
class MyRandom : Random() {
|
||||
<caret>protected override fun next(p0: Int): Int = 4
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f()'" "true"
|
||||
trait A {
|
||||
fun f()
|
||||
}
|
||||
|
||||
class B : A {
|
||||
<caret>override fun f() {}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// "Change function signature to 'override fun f()'" "true"
|
||||
trait A {
|
||||
fun f()
|
||||
}
|
||||
trait B {
|
||||
fun f()
|
||||
}
|
||||
|
||||
class C : A, B {
|
||||
<caret>override fun f() {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
}
|
||||
|
||||
class B : A {
|
||||
<caret>override fun f() {}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
// "Change function signature..." "true"
|
||||
// ERROR: <html>Class 'B' must be declared abstract or implement abstract member<br/><b>abstract</b> <b>fun</b> f(a: jet.String): jet.Unit <i>defined in</i> A</html>
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
fun f(a: String)
|
||||
}
|
||||
|
||||
class B : A {
|
||||
<caret>override fun f() {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'public override fun f(a: Int)'" "true"
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
}
|
||||
|
||||
class B : A {
|
||||
public <caret>override fun f() {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
open class A {
|
||||
open fun f(a: Int) {}
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(a: String) {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
abstract class A {
|
||||
abstract fun f(a: Int)
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(a: String) {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
}
|
||||
|
||||
trait B : A {
|
||||
<caret>override fun f(a: String)
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(x: Int, t: String, z: Double)'" "true"
|
||||
open class A {
|
||||
open fun f(x: Int, y: String, z: Double) {}
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(z: String, x: String, t: String) {}
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(y: Int, x: String)'" "true"
|
||||
open class A {
|
||||
open fun f(a: Int, b: String) {}
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(x: String, y: Int) {}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// "Change function signature to 'override fun f()'" "true"
|
||||
open class A {
|
||||
open fun f() {}
|
||||
}
|
||||
|
||||
open class B : A() {
|
||||
open override fun f() {}
|
||||
}
|
||||
|
||||
class C : B() {
|
||||
<caret>override fun f(a : Int) {}
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// "Change function signature to 'override fun f(a: Int): Int'" "true"
|
||||
open class A {
|
||||
open fun f(a: Int): Int {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
<caret>override fun f(a: String): Int = 7
|
||||
}
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: Int)'" "true"
|
||||
trait A {
|
||||
fun f(a: Int)
|
||||
}
|
||||
|
||||
class B : A {
|
||||
<caret>override fun f(a: String) {}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// "Change function signature to 'override fun f(a: Int): Int'" "true"
|
||||
// ERROR: <html>Type mismatch.<table><tr><td>Required:</td><td>jet.Int</td></tr><tr><td>Found:</td><td>jet.String</td></tr></table></html>
|
||||
open class A {
|
||||
open fun f(a: Int): Int = 0
|
||||
}
|
||||
|
||||
class B : A(){
|
||||
// Note that when parameter types match, RETURN_TYPE_MISMATCH_ON_OVERRIDE error is reported
|
||||
// and "Change function signature" quickfix is not present.
|
||||
<caret>override fun f(a : String): String = "FOO"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// "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 @@
|
||||
// "Change function signature to 'protected override fun next(p0: Int): Int'" "true"
|
||||
import java.util.Random
|
||||
|
||||
class MyRandom : Random() {
|
||||
<caret>override fun next(): Int = 4
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f()'" "true"
|
||||
trait A {
|
||||
fun f()
|
||||
}
|
||||
|
||||
class B : A {
|
||||
<caret>override fun f(a: Int) {}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
// "Change function signature to 'override fun f()'" "true"
|
||||
trait A {
|
||||
fun f()
|
||||
}
|
||||
trait B {
|
||||
fun f()
|
||||
}
|
||||
|
||||
class C : A, B {
|
||||
<caret>override fun f(a: String) {}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
// "Change function signature to 'override fun f(a: A)'" "true"
|
||||
// ERROR: 'f' overrides nothing
|
||||
// ERROR: 'f' overrides nothing
|
||||
import a.B
|
||||
import a.A
|
||||
|
||||
class BB : B() {
|
||||
<caret>override fun f(a: A) {}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
// "Change function signature to 'override fun f(a: A)'" "true"
|
||||
// ERROR: 'f' overrides nothing
|
||||
// ERROR: 'f' overrides nothing
|
||||
import a.B
|
||||
class BB : B() {
|
||||
<caret>override fun f() {}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
class A {}
|
||||
open class B {
|
||||
override fun f(a: A) {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: A)'" "true"
|
||||
// ERROR: 'f' overrides nothing
|
||||
// ERROR: 'f' overrides nothing
|
||||
import a.B
|
||||
class A {}
|
||||
class BB : B() {
|
||||
<caret>override fun f(a: a.A) {}
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
// "Change function signature to 'override fun f(a: A)'" "true"
|
||||
// ERROR: 'f' overrides nothing
|
||||
// ERROR: 'f' overrides nothing
|
||||
import a.B
|
||||
class A {}
|
||||
class BB : B() {
|
||||
<caret>override fun f() {}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package a
|
||||
class A {}
|
||||
open class B {
|
||||
override fun f(a: A) {}
|
||||
}
|
||||
Reference in New Issue
Block a user