fun use(fn: Function1): Any { return fn.invoke(p1 = 42) } class C { constructor(vararg xs: Int) /* primary */ { super/*Any*/() /* () */ } } class Outer { constructor() /* primary */ { super/*Any*/() /* () */ } inner class Inner { constructor(vararg xs: Int) /* 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():: }) }