open class A { constructor() /* primary */ { super/*Any*/() /* () */ } inline fun foo(noinline lambda: Function1) { } inline fun foo2(crossinline lambda: Function1) { } } class B : Java1 { constructor() /* primary */ { super/*Java1*/() /* () */ } } abstract class C : Java1, Java2 { constructor() /* primary */ { super/*Java1*/() /* () */ } } class D : Java1, Java2 { constructor() /* primary */ { super/*Java1*/() /* () */ } override fun foo(lambda: Function?) { } override fun foo2(lambda: Function?) { } } abstract class E : A, Java2 { constructor() /* primary */ { super/*A*/() /* () */ } } class F : A, Java2 { constructor() /* primary */ { super/*A*/() /* () */ } override fun foo(lambda: Function?) { } override fun foo2(lambda: Function?) { } } fun test(b: B, c: C, d: D, e: E, f: F) { b.foo(lambda = local fun (it: Int): Int { return 1 } ) b.foo2(lambda = local fun (it: Int): Int { return 1 } ) c.foo(lambda = local fun (it: Int): Int { return 1 } ) c.foo2(lambda = local fun (it: Int): Int { return 1 } ) d.foo(lambda = local fun (it: Int): Int { return 1 } ) d.foo2(lambda = local fun (it: Int): Int { return 1 } ) e.foo(lambda = local fun (it: Int): Int { return 1 } ) e.foo2(lambda = local fun (it: Int): Int { return 1 } ) f.foo(lambda = local fun (it: Int): Int { return 1 } ) f.foo2(lambda = local fun (it: Int): Int { return 1 } ) }