diff options
author | Som Snytt <som.snytt@gmail.com> | 2014-04-17 01:02:58 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2014-05-13 04:37:52 -0700 |
commit | dc5251eda0a48b9e749a157d689d3ea497ea7045 (patch) | |
tree | c78023786139c07ad97209e53244eb1cc85e0c17 /test | |
parent | ea166087ce3fe2731a8b0d767cbbd4c5e5e648c1 (diff) | |
download | scala-dc5251eda0a48b9e749a157d689d3ea497ea7045.tar.gz scala-dc5251eda0a48b9e749a157d689d3ea497ea7045.tar.bz2 scala-dc5251eda0a48b9e749a157d689d3ea497ea7045.zip |
SI-8507 Avoid lazy val in StringContext
This mild refactor eliminates the lazy val StringBuilder
and arguably makes the code easier to read.
There is a small unit test but no benchmark to prove
anything useful about performance. The ticket notes
contention due to lazy implementation.
Diffstat (limited to 'test')
-rw-r--r-- | test/junit/scala/StringContextTest.scala | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/test/junit/scala/StringContextTest.scala b/test/junit/scala/StringContextTest.scala new file mode 100644 index 0000000000..5abfe90cd1 --- /dev/null +++ b/test/junit/scala/StringContextTest.scala @@ -0,0 +1,51 @@ + +package scala + +import org.junit.Test +import org.junit.Assert._ +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +import scala.tools.testing.AssertUtil._ + +@RunWith(classOf[JUnit4]) +class StringContextTest { + + import StringContext._ + + @Test def noEscape() = { + val s = "string" + val res = processEscapes(s) + assertEquals(s, res) + } + @Test def tabbed() = { + val s = """a\tb""" + val res = processEscapes(s) + assertEquals("a\tb", res) + } + @Test def quoted() = { + val s = """hello, \"world\"""" + val res = processEscapes(s) + assertEquals("""hello, "world"""", res) + } + @Test def octal() = { + val s = """\123cala""" + val res = treatEscapes(s) + assertEquals("Scala", res) + } + @Test def doubled() = { + val s = """\123cala\123yntax""" + val res = treatEscapes(s) + assertEquals("ScalaSyntax", res) + } + @Test def badly() = assertThrows[InvalidEscapeException] { + val s = """Scala\""" + val res = treatEscapes(s) + assertEquals("Scala", res) + } + @Test def noOctal() = assertThrows[InvalidEscapeException] { + val s = """\123cala""" + val res = processEscapes(s) + assertEquals("Scala", res) + } +} |