open class L { constructor(ll: LL) /* primary */ { super/*Any*/() /* () */ } val ll: LL field = ll get } class Rec { constructor(rt: T) /* primary */ { super/*Any*/() /* () */ } val rt: T field = rt get } val Rec.p: L get(): L { local class PLocal : L { constructor(lt: LT, pt: PT) /* primary */ { super/*L*/(ll = lt) /* () */ } val pt: PT field = pt get } return foo2>(t1 = .(), t2 = .(), bb = PLocal::/*()*/) } fun Rec.fn(): L { local class FLocal : L { constructor(lt: LT, pt: FT) /* primary */ { super/*L*/(ll = lt) /* () */ } val pt: FT field = pt get } return foo2>(t1 = .(), t2 = .(), bb = FLocal::/*()*/) } fun foo2(t1: T1, t2: T2, bb: Function2): R { return bb.invoke(p1 = t1, p2 = t2) }