diff options
author | Som Snytt <som.snytt@gmail.com> | 2013-08-06 07:42:13 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2013-08-06 11:02:28 -0700 |
commit | e132de3de869c1ca382c6cfac895aed926560f28 (patch) | |
tree | 0f758af549c069ccab8ee88a6508a4c201e214c4 | |
parent | 4c62f7db6f3913eedd92d85daf8f631149cc97b2 (diff) | |
download | scala-e132de3de869c1ca382c6cfac895aed926560f28.tar.gz scala-e132de3de869c1ca382c6cfac895aed926560f28.tar.bz2 scala-e132de3de869c1ca382c6cfac895aed926560f28.zip |
SI-7544 Interpolation message for %% literal
The new error text: "conversions must follow a splice; use %% for
literal %, %n for newline".
The error is emitted when % is not at the start of a part; only
the non-conversions %% and %n are allowed.
It would be nice if it were convenient to parse the part to see
what the user may have intended, but c'est l'erreur.
-rw-r--r-- | src/compiler/scala/tools/reflect/MacroImplementations.scala | 3 | ||||
-rw-r--r-- | test/files/neg/t7325.check | 10 |
2 files changed, 7 insertions, 6 deletions
diff --git a/src/compiler/scala/tools/reflect/MacroImplementations.scala b/src/compiler/scala/tools/reflect/MacroImplementations.scala index 8e1bcb5f87..4e3761454d 100644 --- a/src/compiler/scala/tools/reflect/MacroImplementations.scala +++ b/src/compiler/scala/tools/reflect/MacroImplementations.scala @@ -94,7 +94,8 @@ abstract class MacroImplementations { def errorAtIndex(idx: Int, msg: String) = c.error(new OffsetPosition(strTree.pos.source, strTree.pos.point + idx), msg) def wrongConversionString(idx: Int) = errorAtIndex(idx, "wrong conversion string") def illegalConversionCharacter(idx: Int) = errorAtIndex(idx, "illegal conversion character") - def nonEscapedPercent(idx: Int) = errorAtIndex(idx, "percent signs not directly following splicees must be escaped") + def nonEscapedPercent(idx: Int) = errorAtIndex(idx, + "conversions must follow a splice; use %% for literal %, %n for newline") // STEP 1: handle argument conversion // 1) "...${smth}" => okay, equivalent to "...${smth}%s" diff --git a/test/files/neg/t7325.check b/test/files/neg/t7325.check index 709ab6db3e..d2c40f4df8 100644 --- a/test/files/neg/t7325.check +++ b/test/files/neg/t7325.check @@ -1,19 +1,19 @@ -t7325.scala:2: error: percent signs not directly following splicees must be escaped +t7325.scala:2: error: conversions must follow a splice; use %% for literal %, %n for newline println(f"%") ^ -t7325.scala:4: error: percent signs not directly following splicees must be escaped +t7325.scala:4: error: conversions must follow a splice; use %% for literal %, %n for newline println(f"%%%") ^ -t7325.scala:6: error: percent signs not directly following splicees must be escaped +t7325.scala:6: error: conversions must follow a splice; use %% for literal %, %n for newline println(f"%%%%%") ^ t7325.scala:16: error: wrong conversion string println(f"${0}%") ^ -t7325.scala:19: error: percent signs not directly following splicees must be escaped +t7325.scala:19: error: conversions must follow a splice; use %% for literal %, %n for newline println(f"${0}%%%d") ^ -t7325.scala:21: error: percent signs not directly following splicees must be escaped +t7325.scala:21: error: conversions must follow a splice; use %% for literal %, %n for newline println(f"${0}%%%%%d") ^ 6 errors found |