Add quickfix for RETURN_TYPE_MISMATCH_ON_OVERRIDE

#KT-27972 Fixed
This commit is contained in:
Toshiaki Kameyama
2018-12-06 17:56:56 +09:00
committed by Natalia Selezneva
parent 683ed4eb95
commit 3040a2b145
12 changed files with 281 additions and 0 deletions
@@ -0,0 +1,18 @@
// "Change type argument to String" "true"
abstract class Foo<T1, T2> {
abstract fun foo1(): T1
abstract val foo2: T2
}
interface Bar<T1, T2> {
val bar1: T1
fun bar2(): T2
}
class Test : Foo<Int, Int>(), Bar<Int, Int> {
override fun foo1(): Int = 1
override val foo2: <caret>String = "2"
override val bar1: Int = 3
override fun bar2(): Int = 4
}
@@ -0,0 +1,18 @@
// "Change type argument to String" "true"
abstract class Foo<T1, T2> {
abstract fun foo1(): T1
abstract val foo2: T2
}
interface Bar<T1, T2> {
val bar1: T1
fun bar2(): T2
}
class Test : Foo<Int, String>(), Bar<Int, Int> {
override fun foo1(): Int = 1
override val foo2: String = "2"
override val bar1: Int = 3
override fun bar2(): Int = 4
}
@@ -0,0 +1,18 @@
// "Change type argument to Long" "true"
abstract class Foo<T1, T2> {
abstract fun foo1(): T1
abstract val foo2: T2
}
interface Bar<T1, T2> {
val bar1: T1
fun bar2(): T2
}
class Test : Foo<Int, Int>(), Bar<Int, Int> {
override fun foo1(): Int = 1
override val foo2: Int = 2
override val <caret>bar1 = 3L
override fun bar2(): Int = 4
}
@@ -0,0 +1,18 @@
// "Change type argument to Long" "true"
abstract class Foo<T1, T2> {
abstract fun foo1(): T1
abstract val foo2: T2
}
interface Bar<T1, T2> {
val bar1: T1
fun bar2(): T2
}
class Test : Foo<Int, Int>(), Bar<Long, Int> {
override fun foo1(): Int = 1
override val foo2: Int = 2
override val bar1 = 3L
override fun bar2(): Int = 4
}
@@ -0,0 +1,18 @@
// "Change type argument to Long" "true"
abstract class Foo<T1, T2> {
abstract fun foo1(): T1
abstract val foo2: T2
}
interface Bar<T1, T2> {
val bar1: T1
fun bar2(): T2
}
class Test : Foo<Int, Int>(), Bar<Int, Int> {
override fun foo1(): <caret>Long = 1L
override val foo2: Int = 2
override val bar1: Int = 3
override fun bar2(): Int = 4
}
@@ -0,0 +1,18 @@
// "Change type argument to Long" "true"
abstract class Foo<T1, T2> {
abstract fun foo1(): T1
abstract val foo2: T2
}
interface Bar<T1, T2> {
val bar1: T1
fun bar2(): T2
}
class Test : Foo<Long, Int>(), Bar<Int, Int> {
override fun foo1(): Long = 1L
override val foo2: Int = 2
override val bar1: Int = 3
override fun bar2(): Int = 4
}
@@ -0,0 +1,18 @@
// "Change type argument to String" "true"
abstract class Foo<T1, T2> {
abstract fun foo1(): T1
abstract val foo2: T2
}
interface Bar<T1, T2> {
val bar1: T1
fun bar2(): T2
}
class Test : Foo<Int, Int>(), Bar<Int, Int> {
override fun foo1(): Int = 1
override val foo2: Int = 2
override val bar1: Int = 3
override fun <caret>bar2() = "4"
}
@@ -0,0 +1,18 @@
// "Change type argument to String" "true"
abstract class Foo<T1, T2> {
abstract fun foo1(): T1
abstract val foo2: T2
}
interface Bar<T1, T2> {
val bar1: T1
fun bar2(): T2
}
class Test : Foo<Int, Int>(), Bar<Int, String> {
override fun foo1(): Int = 1
override val foo2: Int = 2
override val bar1: Int = 3
override fun bar2() = "4"
}