| // WITH_DEFAULT_VALUE: false | |
| public inline fun <T, R> with(receiver: T, f: T.() -> R): R = receiver.f() | |
| class A(val a: Int) { | |
| fun foo(i: Int): Int { | |
| return i / 2 | |
| } | |
| } | |
| fun test() { | |
| val a = A(1) | |
| val i2 = A(2) | |
| a.foo(a.a + i2.a) | |
| with(A(1)) { | |
| val i1 = A(2) | |
| foo(this.a + i1.a) | |
| val i = A(2) | |
| this.foo(this.a + i.a) | |
| } | |
| } |