diff options
author | Geoffrey Washburn <geoffrey.washburn@epfl.ch> | 2008-08-22 15:23:54 +0000 |
---|---|---|
committer | Geoffrey Washburn <geoffrey.washburn@epfl.ch> | 2008-08-22 15:23:54 +0000 |
commit | 9319bfeba652b2717bf4b63c5846e6108f7d377a (patch) | |
tree | a166baf83b3975aad4f2f72c08d0dda1b2cbe467 | |
parent | 48a0b62ad117e31428dbb8b9552ffaa872540fb3 (diff) | |
download | scala-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.scala | 22 |
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) |