diff options
author | Sean McDirmid <sean.mcdirmid@gmail.com> | 2007-10-19 12:53:52 +0000 |
---|---|---|
committer | Sean McDirmid <sean.mcdirmid@gmail.com> | 2007-10-19 12:53:52 +0000 |
commit | a49cbca4e93d573b0687023d3458bb8a1473e463 (patch) | |
tree | 8eb31f12568cad9e1d08a15b5d17024ad5edcc27 /test | |
parent | 7305b72eb8b11872613801b3ce5130b30e362a2d (diff) | |
download | scala-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.check | 16 | ||||
-rw-r--r-- | test/files/run/array_casts.scala | 42 |
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") } + () + } +} |