interface IFoo { abstract fun foo() } val test1: Any field = { // BLOCK local class { private constructor() /* primary */ { super/*Any*/() /* () */ } } () } get val test2: IFoo field = { // BLOCK local class : IFoo { private constructor() /* primary */ { super/*Any*/() /* () */ } override fun foo() { println(message = "foo") } } () } get class Outer { constructor() /* primary */ { super/*Any*/() /* () */ } abstract inner class Inner : IFoo { constructor() /* primary */ { super/*Any*/() /* () */ } } fun test3(): Inner { return { // BLOCK local class : Inner { private constructor() /* primary */ { .super/*Inner*/() /* () */ } override fun foo() { println(message = "foo") } } () } } } fun Outer.test4(): Inner { return { // BLOCK local class : Inner { private constructor() /* primary */ { .super/*Inner*/() /* () */ } override fun foo() { println(message = "foo") } } () } }