Files
kotlin-fork/compiler/testData/diagnostics/tests/resolve/invoke/invokeAsMember.kt
T
Svetlana Isakova cf5c5dba3d KT-3189 Function invoke is called with no reason
prioritize tasks specially for invoke

 #KT-3189 Fixed
 #KT-3190 Fixed
 #KT-3297 Fixed
2013-07-05 18:03:51 +04:00

62 lines
678 B
Kotlin

class Foo {
fun invoke() {}
}
//no variable
fun test(foo: Foo) {
foo()
}
//variable as member
trait A {
val foo: Foo
}
fun test(a: A) {
a.foo()
with (a) {
foo()
}
}
//variable as extension
trait B {}
val B.foo = Foo()
fun test(b: B) {
b.foo()
with (b) {
foo()
}
}
//variable as member extension
trait C
trait D {
val C.foo: Foo
fun test(c: C) {
c.foo()
with (c) {
foo()
}
}
}
fun test(d: D, c: C) {
with (d) {
c.foo()
with (c) {
foo()
}
}
}
//--------------
fun <T, R> with(receiver: T, f: T.() -> R) : R = receiver.f()