diff options
author | Som Snytt <som.snytt@gmail.com> | 2014-02-11 13:53:32 -0800 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2014-02-11 13:53:32 -0800 |
commit | ff4cfd575a9b731adc60582de447fafb5303eb49 (patch) | |
tree | 5a01de0954e811fd7e012f3f902c74c540837b8d /src/library | |
parent | d4f5abf9002fd617e871d1f20fdcf531b38b26e1 (diff) | |
download | scala-ff4cfd575a9b731adc60582de447fafb5303eb49.tar.gz scala-ff4cfd575a9b731adc60582de447fafb5303eb49.tar.bz2 scala-ff4cfd575a9b731adc60582de447fafb5303eb49.zip |
SI-8266 Deprecate octal escapes in f-interpolator
Also turns the f-interpolator into a migration
assistant by suggesting alternatives for the
standard escapes.
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 |