6356807997
#KT-36247 fixed A lot of testdata changed because significanly less (error) descriptors are created for unresolved types, so diagnostics became different.
65 lines
2.1 KiB
Kotlin
Vendored
65 lines
2.1 KiB
Kotlin
Vendored
package example
|
|
|
|
interface T {
|
|
fun foo() {}
|
|
}
|
|
open class C() {
|
|
fun bar() {}
|
|
}
|
|
|
|
class A<E>() : C(), T {
|
|
|
|
fun test() {
|
|
<!SUPER_IS_NOT_AN_EXPRESSION!>super<!>
|
|
<!SUPER_IS_NOT_AN_EXPRESSION!>super<T><!>
|
|
super.foo()
|
|
super<T>.foo()
|
|
super<C>.bar()
|
|
super<T>@A.foo()
|
|
super<C>@A.bar()
|
|
super<<!NOT_A_SUPERTYPE!>E<!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()
|
|
super<<!NOT_A_SUPERTYPE!>E<!>>@A.<!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()
|
|
super<<!NOT_A_SUPERTYPE!>Int<!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>()
|
|
super<<!SYNTAX!><!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>()
|
|
super<<!NOT_A_SUPERTYPE!>() -> Unit<!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>()
|
|
super<<!NOT_A_SUPERTYPE!>Unit<!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>()
|
|
<!DEBUG_INFO_MISSING_UNRESOLVED!>super<!><T><!UNRESOLVED_REFERENCE!>@B<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>()
|
|
<!DEBUG_INFO_MISSING_UNRESOLVED!>super<!><C><!UNRESOLVED_REFERENCE!>@B<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()
|
|
}
|
|
|
|
inner class B : T {
|
|
fun test() {
|
|
super<T>.foo();
|
|
super<<!NOT_A_SUPERTYPE!>C<!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()
|
|
super<C>@A.bar()
|
|
super<T>@A.foo()
|
|
super<T>@B.foo()
|
|
super<<!NOT_A_SUPERTYPE!>C<!>>@B.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>()
|
|
super.foo()
|
|
<!SUPER_IS_NOT_AN_EXPRESSION!>super<!>
|
|
<!SUPER_IS_NOT_AN_EXPRESSION!>super<T><!>
|
|
}
|
|
}
|
|
}
|
|
|
|
interface G<T> {
|
|
fun foo() {}
|
|
}
|
|
|
|
class CG : G<Int> {
|
|
fun test() {
|
|
super<G>.foo() // OK
|
|
super<G<!TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER!><Int><!>>.foo() // Warning
|
|
super<<!NOT_A_SUPERTYPE!>G<<!UNRESOLVED_REFERENCE!>E<!>><!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>() // Error
|
|
super<<!NOT_A_SUPERTYPE!>G<String><!>>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>() // Error
|
|
}
|
|
}
|
|
|
|
// The case when no supertype is resolved
|
|
class ERROR<E>() : <!UNRESOLVED_REFERENCE!>UR<!> {
|
|
|
|
fun test() {
|
|
super.<!UNRESOLVED_REFERENCE!>foo<!>()
|
|
}
|
|
}
|