36 lines
819 B
Kotlin
Vendored
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
|
|
}
|