QuickFix for RETURN_TYPE_MISMATCH_ON_OVERRIDE and PROPERTY_TYPE_MISMATCH_ON_OVERRIDE.

This commit is contained in:
Wojciech Lopata
2013-02-09 11:03:41 +01:00
committed by Andrey Breslav
parent a880b2a699
commit 237be539b3
20 changed files with 407 additions and 2 deletions
@@ -0,0 +1,8 @@
// "Change property type to 'Int'" "true"
abstract class A {
abstract var x : Int
}
abstract class B : A() {
override abstract var x : Int
}
@@ -0,0 +1,8 @@
// "Change property type to 'Int'" "true"
abstract class A {
abstract var x : Int
}
abstract class B : A() {
override abstract var x: Int
}
@@ -0,0 +1,15 @@
// "Change return type to 'T'" "true"
open class S {}
open class T : S() {}
abstract class A {
abstract fun foo() : S;
}
trait X {
fun foo() : T;
}
abstract class B : A(), X {
override abstract fun foo() : T;
}
@@ -0,0 +1,8 @@
// "Change return type to 'Int'" "true"
abstract class A {
abstract fun foo() : Int;
}
abstract class B : A() {
abstract override fun foo() : Int;
}
@@ -0,0 +1,8 @@
// "Change return type to 'Int'" "true"
abstract class A {
abstract fun foo() : Int;
}
abstract class B : A() {
abstract override fun foo(): Int;
}
@@ -0,0 +1,4 @@
// "Remove explicitly specified return type to match overridden method" "true"
abstract class A : java.util.Iterator<Int> {
public abstract override fun remove();
}
@@ -0,0 +1,8 @@
// "Change property type to 'Int'" "true"
abstract class A {
abstract var x : Int
}
abstract class B : A() {
override abstract var x : Long<caret>
}
@@ -0,0 +1,8 @@
// "Change property type to 'Int'" "true"
abstract class A {
abstract var x : Int
}
abstract class B : A() {
override abstract var x<caret>
}
@@ -0,0 +1,15 @@
// "Change return type to 'T'" "true"
open class S {}
open class T : S() {}
abstract class A {
abstract fun foo() : S;
}
trait X {
fun foo() : T;
}
abstract class B : A(), X {
override abstract fun foo() : Int<caret>;
}
@@ -0,0 +1,15 @@
// "Change return type to 'Int'" "false"
// "Change return type to 'Long'" "false"
// "Remove explicitly specified return type to match overridden method" "false"
// ERROR: <html>Return type is 'jet.String', which is not a subtype of overridden<br/><b>internal</b> <b>abstract</b> <b>fun</b> foo() : jet.Int <i>defined in</i> A</html>
abstract class A {
abstract fun foo() : Int;
}
trait X {
fun foo() : Long;
}
abstract class B : A(), X {
abstract override fun foo() : String<caret>;
}
@@ -0,0 +1,8 @@
// "Change return type to 'Int'" "true"
abstract class A {
abstract fun foo() : Int;
}
abstract class B : A() {
abstract override fun foo() : Long<caret>;
}
@@ -0,0 +1,8 @@
// "Change return type to 'Int'" "true"
abstract class A {
abstract fun foo() : Int;
}
abstract class B : A() {
abstract override fun foo<caret>();
}
@@ -0,0 +1,4 @@
// "Remove explicitly specified return type to match overridden method" "true"
abstract class A : java.util.Iterator<Int> {
public abstract override fun remove() : Int<caret>;
}