File tree 1 file changed +12
-11
lines changed
compiler/src/dotty/tools/dotc/transform
1 file changed +12
-11
lines changed Original file line number Diff line number Diff line change @@ -29,18 +29,19 @@ class InterceptedMethods extends MiniPhase {
29
29
override def phaseName : String = InterceptedMethods .name
30
30
31
31
// this should be removed if we have guarantee that ## will get Apply node
32
- override def transformSelect (tree : tpd.Select )(implicit ctx : Context ): Tree = {
33
- if (tree.symbol.isTerm && (defn.Any_## eq tree.symbol.asTerm)) {
34
- val rewrite = poundPoundValue(tree.qualifier)
35
- ctx.log(s " $phaseName rewrote $tree to $rewrite" )
36
- rewrite
37
- }
38
- else tree
39
- }
32
+ override def transformSelect (tree : tpd.Select )(implicit ctx : Context ): Tree =
33
+ transformRefTree(tree)
34
+
35
+ override def transformIdent (tree : tpd.Ident )(implicit ctx : Context ): Tree =
36
+ transformRefTree(tree)
40
37
41
- override def transformIdent (tree : tpd.Ident )(implicit ctx : Context ): Tree = {
42
- if (tree.symbol.isTerm && (defn.Any_## eq tree.symbol.asTerm)) {
43
- val rewrite = poundPoundValue(tpd.desugarIdentPrefix(tree))
38
+ private def transformRefTree (tree : RefTree )(implicit ctx : Context ): Tree = {
39
+ if (tree.symbol.isTerm && (defn.Any_## eq tree.symbol)) {
40
+ val qual = tree match {
41
+ case id : Ident => tpd.desugarIdentPrefix(id)
42
+ case sel : Select => sel.qualifier
43
+ }
44
+ val rewrite = poundPoundValue(qual)
44
45
ctx.log(s " $phaseName rewrote $tree to $rewrite" )
45
46
rewrite
46
47
}
You can’t perform that action at this time.
0 commit comments