From 2f56eefee4e741e38cfd58d580173a69cfd93deb Mon Sep 17 00:00:00 2001 From: michelou Date: Wed, 23 Jan 2008 11:54:50 +0000 Subject: corrected regexp --- src/library/scala/runtime/RichString.scala | 2 +- test/files/run/bug0325.check | 44 ++++++++++++++++++++++-------- test/files/run/bug0325.scala | 7 +++-- 3 files changed, 37 insertions(+), 16 deletions(-) diff --git a/src/library/scala/runtime/RichString.scala b/src/library/scala/runtime/RichString.scala index fdbaf10267..e2c5d1f0c6 100644 --- a/src/library/scala/runtime/RichString.scala +++ b/src/library/scala/runtime/RichString.scala @@ -169,7 +169,7 @@ final class RichString(val self: String) extends Proxy with RandomAccessSeq[Char @throws(classOf[java.util.regex.PatternSyntaxException]) def split(separators: Array[Char]): Array[String] = { - val re = separators.foldLeft("[\\Q")(_+_) + "\\E]" + val re = separators.foldLeft("[")(_+"\\Q"+_+"\\E") + "]" self.split(re) } diff --git a/test/files/run/bug0325.check b/test/files/run/bug0325.check index 71d1f3feb5..85fe91dac6 100644 --- a/test/files/run/bug0325.check +++ b/test/files/run/bug0325.check @@ -1,15 +1,35 @@ +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) -RichString split("x]") returned List(a]b) when expecting List(a, b) -RichString split("&&") returned List(a&b) when expecting List(a, b) -RichString split("\x") returned List(a\b) when expecting List(a, b) -RichString split("[x") returned List(a[b) when expecting List(a, b) -RichString split("^x") returned List(a^b) when expecting List(a, b) -RichString split("x-z") returned List(a-b) when expecting List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) -RS split("x]") returned List(a]b) when expecting List(a, b) -RS split("&&") returned List(a&b) when expecting List(a, b) -RS split("\x") returned List(a\b) when expecting List(a, b) -RS split("[x") returned List(a[b) when expecting List(a, b) -RS split("^x") returned List(a^b) when expecting List(a, b) -RS split("x-z") returned List(a-b) when expecting List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) +List(a, b) diff --git a/test/files/run/bug0325.scala b/test/files/run/bug0325.scala index 18193ff960..dc05a8d777 100644 --- a/test/files/run/bug0325.scala +++ b/test/files/run/bug0325.scala @@ -2,7 +2,7 @@ case class RS(self: String) { def split(separator: Char): Array[String] = self.split("\\Q"+separator+"\\E") def split(separators: Array[Char]): Array[String] = { - val re = separators.foldLeft("[\\Q")(_+_) + "\\E]" + val re = separators.foldLeft("[")(_+"\\Q"+_+"\\E") + "]" self.split(re) } } @@ -12,9 +12,10 @@ object Test { def test(f: => Array[String], which: String) { try { val ret = f.toList - if (ret != expect) { + if (ret != expect) println(which + " returned " + ret + " when expecting " + expect) - } + else + println(ret) } catch { case e@_ => println(which + " failed with " + e.getClass) } -- cgit v1.2.3