[FIR] Add some corner case tests for KT-64891

Note that there are some that K2
correctly supports, while K1 fails.

^KT-64891
This commit is contained in:
Nikolay Lunyak
2024-01-15 14:21:52 +02:00
committed by Space Team
parent 3a36a786d4
commit eb11901d43
10 changed files with 174 additions and 0 deletions
@@ -0,0 +1,34 @@
// ISSUE: KT-64891
fun <T> T.b(): Int = 10
fun <T> Int.a(it: T): Int = this
fun main() {
5.(<!UNRESOLVED_REFERENCE!>::<!UNRESOLVED_REFERENCE!>b<!><!>)().inv()
5.(<!UNRESOLVED_REFERENCE!>::<!UNRESOLVED_REFERENCE!>a<!><!>)('=').inv()
val c = Int::b
5.(c)().inv()
val f: Int.() -> Int = Int::b
5.(f)().inv()
5.(Int::b)().inv()
val d = Int::<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>a<!>
5.(d)('=').inv()
val e: Int.(Char) -> Int = Int::a
5.(e)('=').inv()
}
val <T> T.x get(): Int = 10
fun rain() {
5.(<!UNRESOLVED_REFERENCE!>x<!>)().inv()
5.(<!UNRESOLVED_REFERENCE!>::<!UNRESOLVED_REFERENCE!>x<!><!>)().inv()
5.(Int::x)().inv()
}
@@ -0,0 +1,34 @@
// ISSUE: KT-64891
fun <T> T.b(): Int = 10
fun <T> Int.a(it: T): Int = this
fun main() {
5.<!FUNCTION_EXPECTED!>(::<!UNRESOLVED_REFERENCE!>b<!>)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
5.<!FUNCTION_EXPECTED!>(::<!UNRESOLVED_REFERENCE!>a<!>)<!>('=').<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
val c = Int::b
5.<!FUNCTION_EXPECTED!>(c)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
val f: Int.() -> Int = Int::b
5.(f)().inv()
5.<!FUNCTION_EXPECTED!>(Int::b)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
val d = Int::<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>a<!>
5.<!FUNCTION_EXPECTED!>(<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>d<!>)<!>('=').<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
val e: Int.(Char) -> Int = Int::a
5.(e)('=').inv()
}
val <T> T.x get(): Int = 10
fun rain() {
5.<!FUNCTION_EXPECTED!>(<!UNRESOLVED_REFERENCE!>x<!>)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
5.<!FUNCTION_EXPECTED!>(::<!UNRESOLVED_REFERENCE!>x<!>)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
5.<!FUNCTION_EXPECTED!>(Int::x)<!>().<!DEBUG_INFO_MISSING_UNRESOLVED!>inv<!>()
}
@@ -0,0 +1,5 @@
// ISSUE: KT-64891
fun test(f: (Int) -> Int) {
2.(f)()
}
@@ -0,0 +1,5 @@
// ISSUE: KT-64891
fun test(f: (Int) -> Int) {
2.<!NO_RECEIVER_ALLOWED!>(f)<!>()
}
@@ -0,0 +1,6 @@
// FIR_IDENTICAL
// ISSUE: KT-64891
fun test(a: (Int.() -> Int)?, b: Int.() -> Int) {
2.(a ?: b)()
}