| // ISSUE: KT-37592, KT-70310 |
| |
| class A { |
| fun test1(): Boolean { |
| val foo: String.() -> Boolean = {false} // (1) |
| fun String.foo(): Boolean {return true} // (2) |
| return "1".foo() // resolves to (2) |
| } |
| fun test2(): Boolean { |
| val foo: String.() -> Boolean = {false} // (1) |
| fun String.foo(): Boolean {return true} // (2) |
| with("2") { |
| return foo() // resolves to (1) |
| } |
| } |
| } |
| |
| class B { |
| val foo: String.() -> Boolean = {false} // (1) |
| fun String.foo(): Boolean {return true} // (2) |
| |
| fun test3(): Boolean { |
| return "1".foo() // resolves to (2) |
| } |
| fun test4(): Boolean { |
| with("2") { |
| return foo() // resolves to (2) |
| } |
| } |
| } |
| |
| fun box(): String { |
| if (A().test1() == false) { |
| return "Fail" |
| } |
| |
| if (A().test2() == true) { |
| return "Fail" |
| } |
| |
| if (B().test3() == false) { |
| return "Fail" |
| } |
| |
| if (B().test4() == false) { |
| return "Fail" |
| } |
| |
| return "OK" |
| } |