Synthetic extensions wins against top-level extension.
This commit is contained in:
+31
@@ -0,0 +1,31 @@
|
||||
// !CHECK_TYPE
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
|
||||
// FILE: A.java
|
||||
public class A {
|
||||
public A getFoo() { return 3; }
|
||||
}
|
||||
|
||||
// FILE: 1.kt
|
||||
|
||||
private val A.foo: Int get() = 4
|
||||
|
||||
fun test(a: A) {
|
||||
a.foo checkType { _<A>() }
|
||||
with(a) {
|
||||
foo checkType { _<A>() }
|
||||
}
|
||||
}
|
||||
|
||||
class B {
|
||||
private val A.foo: B get() = this@B
|
||||
|
||||
fun test(a: A) {
|
||||
a.foo checkType { _<B>() } // todo
|
||||
with(a) {
|
||||
foo checkType { _<B>() } // todo
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f()
|
||||
Reference in New Issue
Block a user