summaryrefslogtreecommitdiff
path: root/src/reflect/scala/reflect/internal/Printers.scala
diff options
context:
space:
mode:
authorJan Bessai <Jan.Bessai@tu-dortmund.de>2015-01-07 10:52:10 +0100
committerJan Bessai <Jan.Bessai@tu-dortmund.de>2015-01-07 10:52:10 +0100
commita622302e2bdf9932648954bf3fb1463b2442209f (patch)
tree9034ae78030c0f6512c6b20ccf1dad6d7c03a0a9 /src/reflect/scala/reflect/internal/Printers.scala
parent3fafbc204fe2ce94e64c6893e74e3855dc875ae8 (diff)
downloadscala-a622302e2bdf9932648954bf3fb1463b2442209f.tar.gz
scala-a622302e2bdf9932648954bf3fb1463b2442209f.tar.bz2
scala-a622302e2bdf9932648954bf3fb1463b2442209f.zip
SI-9057 - fix `showCode` to put backticks around names including dots
Missing backticks cause the parser to treat names as paths, which is obviously invalid. A unit test is included.
Diffstat (limited to 'src/reflect/scala/reflect/internal/Printers.scala')
-rw-r--r--src/reflect/scala/reflect/internal/Printers.scala3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/reflect/scala/reflect/internal/Printers.scala b/src/reflect/scala/reflect/internal/Printers.scala
index c4953b2c1f..98b2c48379 100644
--- a/src/reflect/scala/reflect/internal/Printers.scala
+++ b/src/reflect/scala/reflect/internal/Printers.scala
@@ -546,10 +546,11 @@ trait Printers extends api.Printers { self: SymbolTable =>
import Chars._
val decName = name.decoded
val bslash = '\\'
+ val isDot = (x: Char) => x == '.'
val brackets = List('[',']','(',')','{','}')
def addBackquotes(s: String) =
- if (decoded && (decName.exists(ch => brackets.contains(ch) || isWhitespace(ch)) ||
+ if (decoded && (decName.exists(ch => brackets.contains(ch) || isWhitespace(ch) || isDot(ch)) ||
(name.isOperatorName && decName.exists(isOperatorPart) && decName.exists(isScalaLetter) && !decName.contains(bslash))))
s"`$s`" else s