You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This keeps type info needed for explicit outer in attachments
so that it survives erasure.
ExplicitOuter should run after erasure, for several reasons.
(1) Java generic signatures do not include the outer parameter
(2) Pre-erasure typings become incorrect after erasure. In particular,
if we have a class
class C {
type T
class Inner {
type U = C.this.T
}
val inner: Inner
}
after explicit outer the equality of T and inner.U is no longer provable.
0 commit comments