[Test] Add test reproducing incorrect error in K2 about super qualifier

...with type arguments.
Also, add lazy resolve test to check the subsequent changes are correct.

^KT-66150
This commit is contained in:
Roman Efremov
2024-03-12 10:18:44 +01:00
committed by Space Team
parent a38d317824
commit c4f89ab32e
14 changed files with 897 additions and 0 deletions
@@ -0,0 +1,15 @@
interface B<T> {
fun f() = true
}
open class A(b: Boolean)
class C : B<Int> {
inner class Inner : A(super<<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>B<!>>.<!UNRESOLVED_REFERENCE!>f<!>())
inner class Inner2 : A(super<B<!TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER!><Int><!>>.f())
fun test() {
class LocalClass : A(super<<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>B<!>>.<!UNRESOLVED_REFERENCE!>f<!>())
class LocalClass2 : A(super<B<!TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER!><Int><!>>.f())
}
}
@@ -0,0 +1,15 @@
interface B<T> {
fun f() = true
}
open class A(b: Boolean)
class C : B<Int> {
inner class Inner : A(super<B>.f())
inner class Inner2 : A(super<B<!TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER!><Int><!>>.f())
fun test() {
class LocalClass : A(super<B>.f())
class LocalClass2 : A(super<B<!TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER!><Int><!>>.f())
}
}
@@ -0,0 +1,18 @@
// LL_FIR_DIVERGENCE
// WRONG_NUMBER_OF_TYPE_ARGUMENTS not reported in Inner class because of BodyBuildingMode.LAZY_BODIES
// LL_FIR_DIVERGENCE
interface B<T> {
fun f() = true
}
open class A(b: Boolean)
class C : B<Int> {
inner class Inner : A(super<B>.f())
inner class Inner2 : A(super<B<!TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER!><Int><!>>.f())
fun test() {
class LocalClass : A(super<<!WRONG_NUMBER_OF_TYPE_ARGUMENTS!>B<!>>.<!UNRESOLVED_REFERENCE!>f<!>())
class LocalClass2 : A(super<B<!TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER!><Int><!>>.f())
}
}