diff options
author | Lukas Rytz <lukas.rytz@typesafe.com> | 2014-08-12 11:44:37 +0200 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@typesafe.com> | 2014-08-12 11:44:37 +0200 |
commit | bc0fc0fb90c81038dba16415ee6e733e4e054a28 (patch) | |
tree | 861c0410d9d07fdf7dd8bc82977b1b6559beda97 /src/library | |
parent | 50167e3f1df664165a2ad485abace5dbce623996 (diff) | |
parent | eff9a584a68c65935c313a6f26d7d4f778a61703 (diff) | |
download | scala-bc0fc0fb90c81038dba16415ee6e733e4e054a28.tar.gz scala-bc0fc0fb90c81038dba16415ee6e733e4e054a28.tar.bz2 scala-bc0fc0fb90c81038dba16415ee6e733e4e054a28.zip |
Merge pull request #3889 from som-snytt/issue/6476-alt
SI-6476 Improve error on escapement
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/StringContext.scala | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/library/scala/StringContext.scala b/src/library/scala/StringContext.scala index fe69c6fbf8..2d2601c6fb 100644 --- a/src/library/scala/StringContext.scala +++ b/src/library/scala/StringContext.scala @@ -173,8 +173,13 @@ object StringContext { * @param str The offending string * @param idx The index of the offending backslash character in `str`. */ - class InvalidEscapeException(str: String, @deprecatedName('idx) val index: Int) - extends IllegalArgumentException("invalid escape character at index "+index+" in \""+str+"\"") + class InvalidEscapeException(str: String, @deprecatedName('idx) val index: Int) extends IllegalArgumentException( + s"""invalid escape ${ + require(index >= 0 && index < str.length) + val ok = """[\b, \t, \n, \f, \r, \\, \", \']""" + if (index == str.length - 1) "at terminal" else s"'\\${str(index + 1)}' not one of $ok at" + } index $index in "$str". Use \\\\ for literal \\.""" + ) /** Expands standard Scala escape sequences in a string. * Escape sequences are: |