diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-02-15 16:04:57 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-02-15 16:04:57 -0800 |
commit | 00d19344b0c19a2999e48c6bd9326b94c7b54346 (patch) | |
tree | 3907923f893ed21c82ae6885f7866644f369a909 /src/library | |
parent | 81e12bdb26b75e0a8c289662d02cc6551268f7d3 (diff) | |
parent | ff4cfd575a9b731adc60582de447fafb5303eb49 (diff) | |
download | scala-00d19344b0c19a2999e48c6bd9326b94c7b54346.tar.gz scala-00d19344b0c19a2999e48c6bd9326b94c7b54346.tar.bz2 scala-00d19344b0c19a2999e48c6bd9326b94c7b54346.zip |
Merge pull request #3511 from som-snytt/issue/interp-octal
SI-8266 Deprecate octal escapes in f-interpolator
Diffstat (limited to 'src/library')
-rw-r--r-- | src/library/scala/StringContext.scala | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/library/scala/StringContext.scala b/src/library/scala/StringContext.scala index 2d79452c5d..cd928a2b61 100644 --- a/src/library/scala/StringContext.scala +++ b/src/library/scala/StringContext.scala @@ -172,8 +172,8 @@ object StringContext { * @param str The offending string * @param idx The index of the offending backslash character in `str`. */ - class InvalidEscapeException(str: String, idx: Int) - extends IllegalArgumentException("invalid escape character at index "+idx+" in \""+str+"\"") + class InvalidEscapeException(str: String, @deprecatedName('idx) val index: Int) + extends IllegalArgumentException("invalid escape character at index "+index+" in \""+str+"\"") /** Expands standard Scala escape sequences in a string. * Escape sequences are: @@ -184,7 +184,11 @@ object StringContext { * @param str A string that may contain escape sequences * @return The string with all escape sequences expanded. */ - def treatEscapes(str: String): String = { + def treatEscapes(str: String): String = treatEscapes0(str, strict = false) + + def processEscapes(str: String): String = treatEscapes0(str, strict = true) + + private def treatEscapes0(str: String, strict: Boolean): String = { lazy val bldr = new java.lang.StringBuilder val len = str.length var start = 0 @@ -201,6 +205,7 @@ object StringContext { idx += 1 if (idx >= len) throw new InvalidEscapeException(str, cur) if ('0' <= str(idx) && str(idx) <= '7') { + if (strict) throw new InvalidEscapeException(str, cur) val leadch = str(idx) var oct = leadch - '0' idx += 1 |