== A == trait A { fun foo() : Int } --------------------- L0: L1: NEXT:[] error: PREV:[] sink: PREV:[, ] ===================== == foo == fun foo() : Int --------------------- L0: L1: NEXT:[] error: PREV:[] sink: PREV:[, ] ===================== == B == class B : A { override fun foo() = 10 } --------------------- L0: unsupported(DELEGATOR_SUPER_CLASS : A) L1: NEXT:[] error: PREV:[] sink: PREV:[, ] ===================== == foo == override fun foo() = 10 --------------------- L0: r(10) L1: NEXT:[] error: PREV:[] sink: PREV:[, ] ===================== == foo == fun foo(b: B) : Int { val o = object : A by b {} return o.foo() } --------------------- L0: v(b: B) w(b) mark({ val o = object : A by b {} return o.foo() }) v(val o = object : A by b {}) mark(object : A by b {}) r(b) r(object : A by b {}) w(o) mark(o.foo()) mark(foo()) r(o) call(foo, foo) ret(*) L1 L1: NEXT:[] error: PREV:[] sink: PREV:[, ] =====================