summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2008-01-23 11:54:50 +0000
committermichelou <michelou@epfl.ch>2008-01-23 11:54:50 +0000
commit2f56eefee4e741e38cfd58d580173a69cfd93deb (patch)
tree0c12a0dd23e3f2ee0fa2177db2ecd882401083a9
parentfe9a3a692e85149351c4d14cca2e15771b5309f9 (diff)
downloadscala-2f56eefee4e741e38cfd58d580173a69cfd93deb.tar.gz
scala-2f56eefee4e741e38cfd58d580173a69cfd93deb.tar.bz2
scala-2f56eefee4e741e38cfd58d580173a69cfd93deb.zip
corrected regexp
-rw-r--r--src/library/scala/runtime/RichString.scala2
-rw-r--r--test/files/run/bug0325.check44
-rw-r--r--test/files/run/bug0325.scala7
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)
}