val fsi: Fn field = { // BLOCK local class : Fn { constructor() /* primary */ { super/*Any*/() /* () */ } override fun run(s: String, i: Int, t: String): Int { return 1 } } () } get val fis: Fn field = { // BLOCK local class : Fn { constructor() /* primary */ { super/*Any*/() /* () */ } override fun run(s: String, i: Int, t: Int): String { return "" } } () } get class J { constructor() /* primary */ { super/*Any*/() /* () */ } fun runConversion(f1: Fn, f2: Fn): Int { return f1.run(s = "Bar", i = 1, t = f2.run(s = "Foo", i = 42, t = 239)) } } fun interface Fn { abstract fun run(s: String, i: Int, t: T): R } fun test(j: J) { j.runConversion(f1 = (), f2 = local fun (s: String, i: Int, ti: Int): String { return "" } /*-> Fn */) /*~> Unit */ j.runConversion(f1 = local fun (s: String, i: Int, ts: String): Int { return 1 } /*-> Fn */, f2 = ()) /*~> Unit */ }