Skip to content

Commit 2e0cbe0

Browse files
committed
sane printing of renamed imports
Having a select named "foo" with an underlying symbol named "bar" and trying to make sense of all that by prettyprinting is very confusing
1 parent 1a6c859 commit 2e0cbe0

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

src/reflect/scala/reflect/internal/Printers.scala

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -561,8 +561,11 @@ trait Printers extends api.Printers { self: SymbolTable =>
561561
if (isError) print(": error>")
562562
} else if (hasSymbol) {
563563
tree match {
564-
case _: Ident | _: Select | _: SelectFromTypeTree => print(tree.symbol)
565-
case _ => print(tree.symbol.name)
564+
case refTree: RefTree =>
565+
if (tree.symbol.name != refTree.name) print("[", tree.symbol, " aka ", refTree.name, "]")
566+
else print(tree.symbol)
567+
case _ =>
568+
print(tree.symbol.name)
566569
}
567570
} else {
568571
print(name)

test/files/run/showraw_aliases.check

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Block(List(Import(Select(Select(Ident(scala), scala.reflect), scala.reflect.runtime), List(ImportSelector(newTermName("universe"), 52, newTermName("ru"), 64)))), Select(Select(Select(Select(Ident(scala), scala.reflect), scala.reflect.runtime), scala.reflect.runtime.package), [newTermName("universe") aka newTermName("ru")]))
2+
Block(List(Import(Select(Select(Ident(scala#<id>), scala.reflect#<id>), scala.reflect.runtime#<id>), List(ImportSelector(newTermName("universe"), 52, newTermName("ru"), 64)))), Select(Select(Select(Select(Ident(scala#<id>), scala.reflect#<id>), scala.reflect.runtime#<id>), scala.reflect.runtime.package#<id>), [newTermName("universe")#<id> aka newTermName("ru")]))

test/files/run/showraw_aliases.scala

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import scala.reflect.runtime.universe._
2+
import scala.tools.reflect.ToolBox
3+
4+
object Test extends App {
5+
val tb = runtimeMirror(getClass.getClassLoader).mkToolBox()
6+
val tree = tb.parse("""
7+
import scala.reflect.runtime.{universe => ru}
8+
ru
9+
""")
10+
val ttree = tb.typeCheck(tree)
11+
12+
def stabilize(s: String) = """#\d+""".r.replaceAllIn(s, "#<id>")
13+
println(showRaw(ttree))
14+
println(stabilize(showRaw(ttree, printIds = true)))
15+
}

0 commit comments

Comments
 (0)