59 lines
754 B
Plaintext
Vendored
59 lines
754 B
Plaintext
Vendored
fun use1(fn: Function2<A, Int, Unit>) {
|
|
}
|
|
|
|
fun use2(fn: Function1<Int, Unit>) {
|
|
}
|
|
|
|
open class A {
|
|
constructor() /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
open fun foo(vararg xs: Int): Int {
|
|
return 1
|
|
}
|
|
|
|
}
|
|
|
|
object Obj : A {
|
|
private constructor() /* primary */ {
|
|
super/*A*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun foo(vararg xs: Int): Int {
|
|
return 1
|
|
}
|
|
|
|
}
|
|
|
|
fun testUnbound() {
|
|
use1(fn = local fun foo(p0: A, p1: Int) {
|
|
p0.foo(xs = [p1])
|
|
}
|
|
)
|
|
}
|
|
|
|
fun testBound(a: A) {
|
|
use2(fn = { // BLOCK
|
|
local fun A.foo(p0: Int) {
|
|
receiver.foo(xs = [p0])
|
|
}
|
|
|
|
a::foo
|
|
})
|
|
}
|
|
|
|
fun testObject() {
|
|
use2(fn = { // BLOCK
|
|
local fun Obj.foo(p0: Int) {
|
|
receiver.foo(xs = [p0])
|
|
}
|
|
|
|
Obj::foo
|
|
})
|
|
}
|