File tree Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Expand file tree Collapse file tree 1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package dotty.tools
2
2
package dotc
3
3
package ast
4
4
5
+ import dotty .tools .dotc .transform .ExplicitOuter
5
6
import dotty .tools .dotc .typer .ProtoTypes .FunProtoTyped
6
7
import transform .SymUtils ._
7
8
import core ._
@@ -299,7 +300,16 @@ object tpd extends Trees.Instance[Type] with TypedTreeInfo {
299
300
if (tp.isType) TypeTree (tp)
300
301
else if (prefixIsElidable(tp)) Ident (tp)
301
302
else tp.prefix match {
302
- case pre : SingletonType => singleton(pre).select(tp)
303
+ case pre : SingletonType =>
304
+ val prefix =
305
+ singleton(pre) match {
306
+ case t : This if ctx.erasedTypes && ! (t.symbol == ctx.owner.enclosingClass || t.symbol.isStaticOwner) =>
307
+ // after erasure outer paths should be respected
308
+ new ExplicitOuter .OuterOps (ctx).path(t.tpe.widen.classSymbol)
309
+ case t =>
310
+ t
311
+ }
312
+ prefix.select(tp)
303
313
case pre => SelectFromTypeTree (TypeTree (pre), tp)
304
314
} // no checks necessary
305
315
You can’t perform that action at this time.
0 commit comments