interface Visitor { abstract fun visit() fun visitArray(): Visitor? { return null } fun visitAnnotation(): Visitor? { return null } } class AnnotationLoader { constructor() /* primary */ { super/*Any*/() /* () */ } fun loadAnnotation(): Visitor? { return { // BLOCK local class : Visitor { constructor() /* primary */ { super/*Any*/() /* () */ } override fun visit() { } override fun visitArray(): Visitor? { return { // BLOCK local class : Visitor { constructor() /* primary */ { super/*Any*/() /* () */ } override fun visit() { .foo() } } () } } override fun visitAnnotation(): Visitor? { val visitor: Visitor = CHECK_NOT_NULL(arg0 = .loadAnnotation()) return { // BLOCK local class : Visitor { constructor() /* primary */ { super/*Any*/() /* () */ } private /* final field */ val $$delegate_0: Visitor = visitor override fun visitAnnotation(): Visitor? { return .#$$delegate_0.visitAnnotation() } override fun visitArray(): Visitor? { return .#$$delegate_0.visitArray() } override fun visit() { } } () } } private fun foo() { } } () } } }