aboutsummaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
Diffstat (limited to 'library')
-rw-r--r--library/src/dotty/Show.scala24
1 files changed, 14 insertions, 10 deletions
diff --git a/library/src/dotty/Show.scala b/library/src/dotty/Show.scala
index 103341d00..36327b834 100644
--- a/library/src/dotty/Show.scala
+++ b/library/src/dotty/Show.scala
@@ -19,16 +19,20 @@ object Show {
//
// charEscapeSeq ::= ‘\‘ (‘b‘ | ‘t‘ | ‘n‘ | ‘f‘ | ‘r‘ | ‘"‘ | ‘'‘ | ‘\‘)
def show(str: String) =
- "\"" +
- str
- .replaceAll("\b", "\\\\b")
- .replaceAll("\t", "\\\\t")
- .replaceAll("\n", "\\\\n")
- .replaceAll("\f", "\\\\f")
- .replaceAll("\r", "\\\\r")
- .replaceAll("\'", "\\\\'")
- .replaceAll("\"", "\\\\\"") +
- "\""
+ "\"" + {
+ val sb = new StringBuilder
+ str.foreach {
+ case '\b' => sb.append("\\b")
+ case '\t' => sb.append("\\t")
+ case '\n' => sb.append("\\n")
+ case '\f' => sb.append("\\f")
+ case '\r' => sb.append("\\r")
+ case '\'' => sb.append("\\'")
+ case '\"' => sb.append("\\\"")
+ case c => sb.append(c)
+ }
+ sb.toString
+ } + "\""
}
implicit val intShow = new Show[Int] {