diff options
author | Eugene Burmako <xeno.by@gmail.com> | 2012-11-13 16:57:33 +0100 |
---|---|---|
committer | Eugene Burmako <xeno.by@gmail.com> | 2012-11-13 22:23:56 +0100 |
commit | 2e0cbe0aa276720ceaf54a3448f7e04558e255b8 (patch) | |
tree | 2547c2aa3f40e1d63816f4b3b1fbe935353d2bbb | |
parent | 1a6c8597109a9eee122d01c142d8955a14f704c8 (diff) | |
download | scala-2e0cbe0aa276720ceaf54a3448f7e04558e255b8.tar.gz scala-2e0cbe0aa276720ceaf54a3448f7e04558e255b8.tar.bz2 scala-2e0cbe0aa276720ceaf54a3448f7e04558e255b8.zip |
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
-rw-r--r-- | src/reflect/scala/reflect/internal/Printers.scala | 7 | ||||
-rw-r--r-- | test/files/run/showraw_aliases.check | 2 | ||||
-rw-r--r-- | test/files/run/showraw_aliases.scala | 15 |
3 files changed, 22 insertions, 2 deletions
diff --git a/src/reflect/scala/reflect/internal/Printers.scala b/src/reflect/scala/reflect/internal/Printers.scala index e513ccb32c..80d247c0ea 100644 --- a/src/reflect/scala/reflect/internal/Printers.scala +++ b/src/reflect/scala/reflect/internal/Printers.scala @@ -561,8 +561,11 @@ trait Printers extends api.Printers { self: SymbolTable => if (isError) print(": error>") } else if (hasSymbol) { tree match { - case _: Ident | _: Select | _: SelectFromTypeTree => print(tree.symbol) - case _ => print(tree.symbol.name) + case refTree: RefTree => + if (tree.symbol.name != refTree.name) print("[", tree.symbol, " aka ", refTree.name, "]") + else print(tree.symbol) + case _ => + print(tree.symbol.name) } } else { print(name) diff --git a/test/files/run/showraw_aliases.check b/test/files/run/showraw_aliases.check new file mode 100644 index 0000000000..1838bf9bec --- /dev/null +++ b/test/files/run/showraw_aliases.check @@ -0,0 +1,2 @@ +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")])) +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")])) diff --git a/test/files/run/showraw_aliases.scala b/test/files/run/showraw_aliases.scala new file mode 100644 index 0000000000..3a68ca37b2 --- /dev/null +++ b/test/files/run/showraw_aliases.scala @@ -0,0 +1,15 @@ +import scala.reflect.runtime.universe._ +import scala.tools.reflect.ToolBox + +object Test extends App { + val tb = runtimeMirror(getClass.getClassLoader).mkToolBox() + val tree = tb.parse(""" + import scala.reflect.runtime.{universe => ru} + ru + """) + val ttree = tb.typeCheck(tree) + + def stabilize(s: String) = """#\d+""".r.replaceAllIn(s, "#<id>") + println(showRaw(ttree)) + println(stabilize(showRaw(ttree, printIds = true))) +}
\ No newline at end of file |