Add quick fix for AMBIGUOUS_SUPER

#KT-5271 Fixed
This commit is contained in:
Toshiaki Kameyama
2020-02-26 23:07:25 +09:00
committed by Yan Zhulanow
parent 7c0af78b08
commit f6a13df388
24 changed files with 526 additions and 0 deletions
@@ -0,0 +1,18 @@
// "Specify supertype" "true"
package a.b.c
interface X
open class Y {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : X, a.b.c.Y(), Z {
override fun foo() {
<caret>super.foo()
}
}
@@ -0,0 +1,18 @@
// "Specify supertype" "true"
package a.b.c
interface X
open class Y {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : X, a.b.c.Y(), Z {
override fun foo() {
super<a.b.c.Y>.foo()
}
}
@@ -0,0 +1,16 @@
// "Specify supertype" "true"
package a.b.c
interface Z {
fun foo() {}
}
open class X {
open fun foo() {}
}
class Test : (@Suppress("foo") a.b.c.X)(), Z {
override fun foo() {
<caret>super.foo()
}
}
@@ -0,0 +1,16 @@
// "Specify supertype" "true"
package a.b.c
interface Z {
fun foo() {}
}
open class X {
open fun foo() {}
}
class Test : (@Suppress("foo") a.b.c.X)(), Z {
override fun foo() {
super<a.b.c.X>.foo()
}
}
@@ -0,0 +1,18 @@
// "Specify supertype" "true"
package a.b.c
interface X {}
open class Y<T> {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : a.b.c.Y<Int>(), X, Z {
override fun foo() {
<caret>super.foo()
}
}
@@ -0,0 +1,18 @@
// "Specify supertype" "true"
package a.b.c
interface X {}
open class Y<T> {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : a.b.c.Y<Int>(), X, Z {
override fun foo() {
super<a.b.c.Y>.foo()
}
}
+18
View File
@@ -0,0 +1,18 @@
// "Specify supertype" "true"
package a.b.c
interface X
open class Y {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : X, Y(), Z {
override fun foo() {
<caret>super.foo()
}
}
@@ -0,0 +1,18 @@
// "Specify supertype" "true"
package a.b.c
interface X
open class Y {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : X, Y(), Z {
override fun foo() {
super<Y>.foo()
}
}
+17
View File
@@ -0,0 +1,17 @@
// "Specify supertype" "true"
interface X
open class Y {
open val bar
get() = 1
}
interface Z {
val bar
get() = 2
}
class Test : X, Z, Y() {
override val bar: Int
get() = <caret>super.bar
}
@@ -0,0 +1,17 @@
// "Specify supertype" "true"
interface X
open class Y {
open val bar
get() = 1
}
interface Z {
val bar
get() = 2
}
class Test : X, Z, Y() {
override val bar: Int
get() = super<Z>.bar
}
@@ -0,0 +1,20 @@
// "Specify supertype" "true"
interface X
open class Y {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : X, Y(), Z {
override fun foo() {}
inner class Boo : Y(), Z {
override fun foo() {
<caret>super@Test.foo()
}
}
}
@@ -0,0 +1,20 @@
// "Specify supertype" "true"
interface X
open class Y {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : X, Y(), Z {
override fun foo() {}
inner class Boo : Y(), Z {
override fun foo() {
super<Y>@Test.foo()
}
}
}
@@ -0,0 +1,14 @@
// "Specify supertype" "true"
interface Z {
fun foo() {}
}
open class X {
open fun foo() {}
}
class Test : (@Suppress("foo") X)(), Z {
override fun foo() {
<caret>super.foo()
}
}
@@ -0,0 +1,14 @@
// "Specify supertype" "true"
interface Z {
fun foo() {}
}
open class X {
open fun foo() {}
}
class Test : (@Suppress("foo") X)(), Z {
override fun foo() {
super<X>.foo()
}
}
@@ -0,0 +1,16 @@
// "Specify supertype" "true"
interface X {}
open class Y<T> {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : Y<Int>(), X, Z {
override fun foo() {
<caret>super.foo()
}
}
@@ -0,0 +1,16 @@
// "Specify supertype" "true"
interface X {}
open class Y<T> {
open fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : Y<Int>(), X, Z {
override fun foo() {
super<Y>.foo()
}
}
@@ -0,0 +1,18 @@
// "Specify supertype" "true"
interface X {
fun foo() {}
}
open class Y: X {
override fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : X, Y(), Z {
override fun foo() {
<caret>super.foo()
}
}
@@ -0,0 +1,18 @@
// "Specify supertype" "true"
interface X {
fun foo() {}
}
open class Y: X {
override fun foo() {}
}
interface Z {
fun foo() {}
}
class Test : X, Y(), Z {
override fun foo() {
super<Y>.foo()
}
}
+15
View File
@@ -0,0 +1,15 @@
// "Specify supertype" "true"
// DISABLE-ERRORS
interface Z {
fun foo(): CharSequence = ""
}
open class Y {
override fun foo(): String = ""
}
class Test : Z, Y() {
override fun foo(): String {
return <caret>super.foo()
}
}
@@ -0,0 +1,15 @@
// "Specify supertype" "true"
// DISABLE-ERRORS
interface Z {
fun foo(): CharSequence = ""
}
open class Y {
override fun foo(): String = ""
}
class Test : Z, Y() {
override fun foo(): String {
return super<Y>.foo()
}
}