aboutsummaryrefslogtreecommitdiff
path: root/tests/run/array-charSeq.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run/array-charSeq.scala')
-rw-r--r--tests/run/array-charSeq.scala28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/run/array-charSeq.scala b/tests/run/array-charSeq.scala
new file mode 100644
index 000000000..64055c640
--- /dev/null
+++ b/tests/run/array-charSeq.scala
@@ -0,0 +1,28 @@
+object Test {
+ val arr = Array[Char]('a' to 'i': _*)
+ var xs: CharSequence = arr
+ val hash = xs.hashCode
+
+ def check(chars: CharSequence): Unit = {
+ println("\n[check '" + chars + "'] len = " + chars.length)
+ chars match {
+ case x: Predef.ArrayCharSequence => assert(x.__arrayOfChars eq arr, ((x.__arrayOfChars, arr)))
+ case x: runtime.ArrayCharSequence => assert(x.xs eq arr, ((x.xs, arr)))
+ case x => assert(false, x)
+ }
+
+ 0 until chars.length foreach { i =>
+ println("sub(%s, %s) == '%s'".format(i, chars.length, chars.subSequence(i, chars.length)))
+ println("sub(%s, %s) == '%s'".format(0, i, chars.subSequence(0, i)))
+ }
+ if (chars.length >= 2)
+ check(chars.subSequence(1, chars.length - 1))
+ }
+
+ def main(args: Array[String]): Unit = {
+ while (xs.length > 0) {
+ check(xs)
+ xs = xs.subSequence(0, xs.length - 1)
+ }
+ }
+}