summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeoffrey Washburn <geoffrey.washburn@epfl.ch>2008-08-22 15:23:54 +0000
committerGeoffrey Washburn <geoffrey.washburn@epfl.ch>2008-08-22 15:23:54 +0000
commit9319bfeba652b2717bf4b63c5846e6108f7d377a (patch)
treea166baf83b3975aad4f2f72c08d0dda1b2cbe467
parent48a0b62ad117e31428dbb8b9552ffaa872540fb3 (diff)
downloadscala-9319bfeba652b2717bf4b63c5846e6108f7d377a.tar.gz
scala-9319bfeba652b2717bf4b63c5846e6108f7d377a.tar.bz2
scala-9319bfeba652b2717bf4b63c5846e6108f7d377a.zip
Fix for #1083.
was not producing correct output.
-rw-r--r--src/compiler/scala/tools/nsc/ast/TreePrinters.scala22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
index 006f27f88c..0ef3540198 100644
--- a/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
+++ b/src/compiler/scala/tools/nsc/ast/TreePrinters.scala
@@ -183,15 +183,25 @@ abstract class TreePrinters {
print(symName(tree, name)); printRow(params, "(", ",", ")"); printBlock(rhs)
case Import(expr, selectors) =>
+ // Is this selector remapping a name (i.e, {name1 => name2})
+ def isNotRemap(s: (Name, Name)) : Boolean = (s._1 == nme.WILDCARD || s._1 == s._2)
def selectorToString(s: (Name, Name)): String =
- if (s._1 == nme.WILDCARD || s._1 == s._2) s._1.toString()
- else s._1.toString() + "=>" + s._2.toString()
+ if (isNotRemap(s)) s._1.toString else s._1.toString + "=>" + s._2.toString
+
print("import "); print(expr)
print(".")
- selectors.map(selectorToString) match {
- case List(one) => print(one)
- case many => print(many.mkString("{", ", ", "}"))
- }
+ selectors match {
+ case List(s) =>
+ // If there is just one selector and it is not remapping a name, no braces are needed
+ if (isNotRemap(s)) {
+ print(selectorToString(s))
+ } else {
+ print("{"); print(selectorToString(s)); print("}")
+ }
+ // If there is more than one selector braces are always needed
+ case many =>
+ print(many.map(selectorToString).mkString("{", ", ", "}"))
+ }
case DocDef(comment, definition) =>
print(comment); println; print(definition)