diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2012-05-06 19:50:02 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2012-05-06 19:50:02 +0200 |
commit | 5ca799d8c980ab865b03f98083dea1e089f9ae03 (patch) | |
tree | 56f684c7e8f4aeb640edd83df6267555b658c3e9 | |
parent | 7cac6334d4437ff54c4979799574045501f64135 (diff) | |
download | scala-5ca799d8c980ab865b03f98083dea1e089f9ae03.tar.gz scala-5ca799d8c980ab865b03f98083dea1e089f9ae03.tar.bz2 scala-5ca799d8c980ab865b03f98083dea1e089f9ae03.zip |
Test that primitive arrays aren't accepted as a Java generic array.
They exercise both joint and separate compilation.
This resolves SI-750 (which was somewhat unfairly merged with another ticket).
The error message itself could do with refinement: in particular instance of the much beloved: found X, required X.
-rw-r--r-- | test/files/neg/t750.check | 15 | ||||
-rw-r--r-- | test/files/neg/t750/AO_1.java | 5 | ||||
-rw-r--r-- | test/files/neg/t750/Test_2.scala | 6 | ||||
-rw-r--r-- | test/files/neg/t750b.check | 15 | ||||
-rw-r--r-- | test/files/neg/t750b/AO.java | 5 | ||||
-rw-r--r-- | test/files/neg/t750b/Test.scala | 6 |
6 files changed, 52 insertions, 0 deletions
diff --git a/test/files/neg/t750.check b/test/files/neg/t750.check new file mode 100644 index 0000000000..c17ca334e6 --- /dev/null +++ b/test/files/neg/t750.check @@ -0,0 +1,15 @@ +Test_2.scala:4: error: type mismatch; + found : Array[Int] + required: Array[? with Object] +Note: Int >: ? with Object, but class Array is invariant in type T. +You may wish to investigate a wildcard type such as `_ >: ? with Object`. (SLS 3.2.10) + AO_1.f(a) + ^ +Test_2.scala:5: error: type mismatch; + found : Array[Int] + required: Array[Int] +Note: Int >: Int, but class Array is invariant in type T. +You may wish to investigate a wildcard type such as `_ >: Int`. (SLS 3.2.10) + AO_1.f[Int](a) + ^ +two errors found diff --git a/test/files/neg/t750/AO_1.java b/test/files/neg/t750/AO_1.java new file mode 100644 index 0000000000..4c7360ec6f --- /dev/null +++ b/test/files/neg/t750/AO_1.java @@ -0,0 +1,5 @@ +public class AO_1 { + public static <T> void f(T[] ar0) { + System.out.println(ar0); + } +}
\ No newline at end of file diff --git a/test/files/neg/t750/Test_2.scala b/test/files/neg/t750/Test_2.scala new file mode 100644 index 0000000000..80977431c5 --- /dev/null +++ b/test/files/neg/t750/Test_2.scala @@ -0,0 +1,6 @@ +// t750 +object Test extends App { + val a = Array(1, 2, 3) + AO_1.f(a) + AO_1.f[Int](a) +} diff --git a/test/files/neg/t750b.check b/test/files/neg/t750b.check new file mode 100644 index 0000000000..72a249191e --- /dev/null +++ b/test/files/neg/t750b.check @@ -0,0 +1,15 @@ +Test.scala:4: error: type mismatch; + found : Array[Int] + required: Array[? with Object] +Note: Int >: ? with Object, but class Array is invariant in type T. +You may wish to investigate a wildcard type such as `_ >: ? with Object`. (SLS 3.2.10) + AO.f(a) + ^ +Test.scala:5: error: type mismatch; + found : Array[Int] + required: Array[Int] +Note: Int >: Int, but class Array is invariant in type T. +You may wish to investigate a wildcard type such as `_ >: Int`. (SLS 3.2.10) + AO.f[Int](a) + ^ +two errors found diff --git a/test/files/neg/t750b/AO.java b/test/files/neg/t750b/AO.java new file mode 100644 index 0000000000..060baf9a3c --- /dev/null +++ b/test/files/neg/t750b/AO.java @@ -0,0 +1,5 @@ +public class AO { + public static <T> void f(T[] ar0) { + System.out.println(ar0); + } +}
\ No newline at end of file diff --git a/test/files/neg/t750b/Test.scala b/test/files/neg/t750b/Test.scala new file mode 100644 index 0000000000..5f792a7be8 --- /dev/null +++ b/test/files/neg/t750b/Test.scala @@ -0,0 +1,6 @@ +// t750 +object Test extends App { + val a = Array(1, 2, 3) + AO.f(a) + AO.f[Int](a) +} |