Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/invokePriority.kt
T
2020-04-21 09:52:52 +03:00

36 lines
819 B
Kotlin
Vendored

class A {
fun bar() {
val foo: String.() -> Unit = {} // (1)
fun String.foo(): Unit {} // (2)
"1".foo() // resolves to (2)
with("2") {
foo() // BUG: resolves to (1) in old FE, but to (2) in FIR
}
}
}
class B {
val foo: String.() -> Unit = {} // (1)
fun String.foo(): Unit {} // (2)
fun bar() {
"1".foo() // resolves to (2)
with("2") {
foo() // resolves to (2)
}
}
}
class E {
object f {
operator fun invoke() = Unit // (1)
}
companion object {
val f: () -> Unit = {} // (2)
}
}
fun main() {
E.f // Resolves to (2) in old FE (Resolves to (1) in FIR)
E.f() // Resolves to (2) in old FE (Resolves to (1) in FIR)
E.f.invoke() // Resolves to (1) in old FE and FIR
}