summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSom Snytt <som.snytt@gmail.com>2014-01-28 22:05:25 -0800
committerSom Snytt <som.snytt@gmail.com>2014-01-29 09:46:52 -0800
commitb5e13c92691d3269fec7bcc065c43d85aceac276 (patch)
tree2d112094860feab70157a3b85501072b5ce0dd1b
parentda929c86696787f91c1cee775b158faeb23a9b50 (diff)
downloadscala-b5e13c92691d3269fec7bcc065c43d85aceac276.tar.gz
scala-b5e13c92691d3269fec7bcc065c43d85aceac276.tar.bz2
scala-b5e13c92691d3269fec7bcc065c43d85aceac276.zip
SI-7322 Interpolator idents must be encoded
Otherwise, they are not found. This matters for term names with a differential encoding. Footnote, normally ident() encodes, but INTERPOLATIONID is !isIdent, so that is not used here. Maybe that would be the better improvement.
-rw-r--r--src/compiler/scala/tools/nsc/ast/parser/Parsers.scala2
-rw-r--r--test/files/pos/t7322.scala11
2 files changed, 12 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
index 0728fff74f..577d4a267c 100644
--- a/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
+++ b/src/compiler/scala/tools/nsc/ast/parser/Parsers.scala
@@ -1219,7 +1219,7 @@ self =>
// Like Swiss cheese, with holes
def stringCheese: Tree = atPos(in.offset) {
val start = in.offset
- val interpolator = in.name
+ val interpolator = in.name.encoded // ident() for INTERPOLATIONID
val partsBuf = new ListBuffer[Tree]
val exprBuf = new ListBuffer[Tree]
diff --git a/test/files/pos/t7322.scala b/test/files/pos/t7322.scala
new file mode 100644
index 0000000000..006bf89e9f
--- /dev/null
+++ b/test/files/pos/t7322.scala
@@ -0,0 +1,11 @@
+
+package object t7322 {
+ implicit class X(sc: StringContext) {
+ def x_?(args: Any*) = "hi there"
+ }
+}
+package t7322 {
+ trait Y {
+ x_?"junk" // assume that if it compiles, it works
+ }
+}