diff options
author | Paul Phillips <paulp@improving.org> | 2012-05-04 02:22:51 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-05-04 18:24:16 -0700 |
commit | b5e9e4b9502f02c3de31d32b71f82ea1e6723f01 (patch) | |
tree | b6e1d9f4b394b79951f21c5bb980ace12d4fc8f7 /test/files/run/array-charSeq.scala | |
parent | 0fb12fa0620c5f9999e309a4de7831549b283c24 (diff) | |
download | scala-b5e9e4b9502f02c3de31d32b71f82ea1e6723f01.tar.gz scala-b5e9e4b9502f02c3de31d32b71f82ea1e6723f01.tar.bz2 scala-b5e9e4b9502f02c3de31d32b71f82ea1e6723f01.zip |
Have ArrayCharSequence reuse its Array.
Your know, for performance. Closes SI-5641.
Diffstat (limited to 'test/files/run/array-charSeq.scala')
-rw-r--r-- | test/files/run/array-charSeq.scala | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/test/files/run/array-charSeq.scala b/test/files/run/array-charSeq.scala new file mode 100644 index 0000000000..f7d0586f03 --- /dev/null +++ b/test/files/run/array-charSeq.scala @@ -0,0 +1,27 @@ +object Test { + val arr = Array[Char]('a' to 'i': _*) + var xs: CharSequence = arr + val hash = xs.hashCode + + def check(chars: CharSequence) { + println("\n[check '" + chars + "'] len = " + chars.length) + chars match { + 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) + } + } +} |