class C { constructor(vararg xs: Int) /* primary */ { super/*Any*/() /* () */ } } class Outer { inner class Inner { constructor(vararg xs: Int) /* primary */ { super/*Any*/() /* () */ } } constructor() /* primary */ { super/*Any*/() /* () */ } } fun testConstructor(): Any { return use(fn = { // BLOCK local fun (p0: Int): C { return C(xs = [p0]) } :: }) } fun testInnerClassConstructor(outer: Outer): Any { return use(fn = { // BLOCK local fun Outer.(p0: Int): Inner { return receiver.Inner(xs = [p0]) } outer:: }) } fun testInnerClassConstructorCapturingOuter(): Any { return use(fn = { // BLOCK local fun Outer.(p0: Int): Inner { return receiver.Inner(xs = [p0]) } Outer():: }) } fun use(fn: Function1): Any { return fn.invoke(p1 = 42) }