summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorSean McDirmid <sean.mcdirmid@gmail.com>2007-10-19 12:53:52 +0000
committerSean McDirmid <sean.mcdirmid@gmail.com>2007-10-19 12:53:52 +0000
commita49cbca4e93d573b0687023d3458bb8a1473e463 (patch)
tree8eb31f12568cad9e1d08a15b5d17024ad5edcc27 /test
parent7305b72eb8b11872613801b3ce5130b30e362a2d (diff)
downloadscala-a49cbca4e93d573b0687023d3458bb8a1473e463.tar.gz
scala-a49cbca4e93d573b0687023d3458bb8a1473e463.tar.bz2
scala-a49cbca4e93d573b0687023d3458bb8a1473e463.zip
* Fixed array cast bug in Errasure.
* Tweaked GenerateIDEs to have more coverage * Deprecated * in favor of ** for sets
Diffstat (limited to 'test')
-rw-r--r--test/files/run/array_casts.check16
-rw-r--r--test/files/run/array_casts.scala42
2 files changed, 58 insertions, 0 deletions
diff --git a/test/files/run/array_casts.check b/test/files/run/array_casts.check
new file mode 100644
index 0000000000..f7d3e5036c
--- /dev/null
+++ b/test/files/run/array_casts.check
@@ -0,0 +1,16 @@
+is object - true
+is seq - true
+is collection - true
+is random-access-seq - true
+is random-access-seq-mutable - true
+not string - true
+not list - true
+class [I
+Array(10)
+Array(10)
+Array(10)
+Array(10)
+Good, arrays are not lists
+Good, arrays are not rich strings
+is-seq array true
+class [I
diff --git a/test/files/run/array_casts.scala b/test/files/run/array_casts.scala
new file mode 100644
index 0000000000..9d298bbc2b
--- /dev/null
+++ b/test/files/run/array_casts.scala
@@ -0,0 +1,42 @@
+object Test {
+ val a = Array(10)
+ def main(args : Array[String]) : Unit = {
+ val a = this.a : AnyRef
+ Console.println("is object - " + a.isInstanceOf[Object])
+ Console.println("is seq - " + a.isInstanceOf[Seq[_]])
+ Console.println("is collection - " + a.isInstanceOf[Collection[_]])
+ Console.println("is random-access-seq - " + a.isInstanceOf[RandomAccessSeq[_]])
+ Console.println("is random-access-seq-mutable - " + a.isInstanceOf[RandomAccessSeq.Mutable[_]])
+ Console.println("not string - " + !a.isInstanceOf[String])
+ Console.println("not list - " + !a.isInstanceOf[List[_]])
+ try {
+ Console.println(a.asInstanceOf[Object].getClass)
+ } catch { case ex : ClassCastException => Console.println("Bad, arrays should be objects") }
+ try {
+ Console.println(a.asInstanceOf[Seq[_]])
+ } catch { case ex : ClassCastException => Console.println("Bad, arrays should be seqs") }
+ try {
+ Console.println(a.asInstanceOf[Collection[_]])
+ } catch { case ex : ClassCastException => Console.println("Bad, arrays should be collections") }
+ try {
+ Console.println(a.asInstanceOf[RandomAccessSeq[_]])
+ } catch { case ex : ClassCastException => Console.println("Bad, arrays should be random access seqs") }
+ try {
+ Console.println(a.asInstanceOf[RandomAccessSeq.Mutable[_]])
+ } catch { case ex : ClassCastException => Console.println("Bad, arrays should be mutable random access seqs") }
+ try {
+ Console.println("not expected: " + a.asInstanceOf[List[_]])
+ } catch { case ex : ClassCastException => Console.println("Good, arrays are not lists") }
+ try {
+ Console.println("not expected: " + a.asInstanceOf[runtime.RichString])
+ throw new Error("not expected")
+ } catch { case ex : ClassCastException => Console.println("Good, arrays are not rich strings") }
+ // check that arrays as seqs are still dynamically typed as arrays
+ val s = this.a : Seq[Int]
+ Console.println("is-seq array " + s.isInstanceOf[Array[Char]])
+ try {
+ Console.println(s.asInstanceOf[Array[Int]].getClass)
+ } catch { case ex : ClassCastException => Console.println("Bad, arrays as seqs should still be arrays of int") }
+ ()
+ }
+}