== Ab == abstract class Ab { abstract fun getArray() : Array } --------------------- ===================== == getArray == abstract fun getArray() : Array --------------------- ===================== == test == fun test(ab: Ab) { ab.getArray()[1] } --------------------- : {<: Ab} NEW: magic[FAKE_INITIALIZER](ab: Ab) -> ab : {<: Ab} NEW: r(ab) -> getArray() : {<: Array} NEW: call(getArray(), getArray|) -> ab.getArray() : {<: Array} COPY 1 : Int NEW: r(1) -> ab.getArray()[1] : * NEW: call(ab.getArray()[1], get|, ) -> { ab.getArray()[1] } : * COPY =====================