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