summaryrefslogtreecommitdiff
path: root/test/files/run
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-02-19 00:03:55 -0800
committerPaul Phillips <paulp@improving.org>2012-02-19 00:19:12 -0800
commit87e369ef46bd2ca569ffd1cd6f3a554f1d645dc9 (patch)
tree4e3ab65d04eefe10a49ee97bcca254f10db1c52f /test/files/run
parentec160bae7e2935d98bf71cfb6dcba61f1979b854 (diff)
downloadscala-87e369ef46bd2ca569ffd1cd6f3a554f1d645dc9.tar.gz
scala-87e369ef46bd2ca569ffd1cd6f3a554f1d645dc9.tar.bz2
scala-87e369ef46bd2ca569ffd1cd6f3a554f1d645dc9.zip
More specialization tests.
Some in pending, some in files. Closes SI-4770.
Diffstat (limited to 'test/files/run')
-rw-r--r--test/files/run/t3575.check16
-rw-r--r--test/files/run/t3575.scala55
-rw-r--r--test/files/run/t4770.check2
-rw-r--r--test/files/run/t4770.scala15
4 files changed, 82 insertions, 6 deletions
diff --git a/test/files/run/t3575.check b/test/files/run/t3575.check
index c240b3d90c..9080fd8674 100644
--- a/test/files/run/t3575.check
+++ b/test/files/run/t3575.check
@@ -2,3 +2,19 @@ Two
Two
Two
Two$mcII$sp
+TwoLong
+TwoLong$mcIL$sp
+TwoLong$mcLI$sp
+TwoLong$mcII$sp
+TwoCool
+TwoCool$mcIL$sp
+TwoCool$mcLI$sp
+TwoCool$mcII$sp
+TwoShort
+TwoShort
+TwoShort
+TwoShort$mcII$sp
+TwoMinimal
+TwoMinimal$mcIL$sp
+TwoMinimal$mcLI$sp
+TwoMinimal$mcII$sp
diff --git a/test/files/run/t3575.scala b/test/files/run/t3575.scala
index 56950e62bb..9ccd90a8c4 100644
--- a/test/files/run/t3575.scala
+++ b/test/files/run/t3575.scala
@@ -1,12 +1,55 @@
-case class Two[@specialized A, @specialized B](v: A, w: B);
-
// This is here to tell me if the behavior changes, not because
// the output is endorsed.
+case class Two[
+ @specialized A,
+ @specialized B
+](v: A, w: B)
+
+case class TwoLong[
+ @specialized(Char, Boolean, Byte, Short, Int, Long, Float, Double, Unit, AnyRef) A,
+ @specialized(Char, Boolean, Byte, Short, Int, Long, Float, Double, Unit, AnyRef) B
+](v: A, w: B)
+
+case class TwoCool[
+ @specialized(Specializable.Everything) A,
+ @specialized(Specializable.Everything) B
+](v: A, w: B)
+
+case class TwoShort[
+ @specialized() A,
+ @specialized() B
+](v: A, w: B)
+
+case class TwoMinimal[
+ @specialized(Int, AnyRef) A,
+ @specialized(Int, AnyRef) B
+](v: A, w: B)
+
object Test {
def main(args: Array[String]): Unit = {
- println(Two("Hello", 12).getClass().getName())
- println(Two(12, "Hello").getClass().getName())
- println(Two("Hello", "World").getClass().getName())
- println(Two(12, 12).getClass().getName())
+ println(Two("Hello", "World").getClass().getName());
+ println(Two(12, "Hello").getClass().getName());
+ println(Two("Hello", 12).getClass().getName());
+ println(Two(12, 12).getClass().getName());
+
+ println(TwoLong("Hello", "World").getClass().getName());
+ println(TwoLong(12, "Hello").getClass().getName());
+ println(TwoLong("Hello", 12).getClass().getName());
+ println(TwoLong(12, 12).getClass().getName());
+
+ println(TwoCool("Hello", "World").getClass().getName());
+ println(TwoCool(12, "Hello").getClass().getName());
+ println(TwoCool("Hello", 12).getClass().getName());
+ println(TwoCool(12, 12).getClass().getName());
+
+ println(TwoShort("Hello", "World").getClass().getName());
+ println(TwoShort(12, "Hello").getClass().getName());
+ println(TwoShort("Hello", 12).getClass().getName());
+ println(TwoShort(12, 12).getClass().getName());
+
+ println(TwoMinimal("Hello", "World").getClass().getName());
+ println(TwoMinimal(12, "Hello").getClass().getName());
+ println(TwoMinimal("Hello", 12).getClass().getName());
+ println(TwoMinimal(12, 12).getClass().getName());
}
}
diff --git a/test/files/run/t4770.check b/test/files/run/t4770.check
new file mode 100644
index 0000000000..38e5a831fa
--- /dev/null
+++ b/test/files/run/t4770.check
@@ -0,0 +1,2 @@
+(a,2)
+(2,a)
diff --git a/test/files/run/t4770.scala b/test/files/run/t4770.scala
new file mode 100644
index 0000000000..25bf3050c3
--- /dev/null
+++ b/test/files/run/t4770.scala
@@ -0,0 +1,15 @@
+package crasher {
+ class Z[@specialized A, @specialized(AnyRef) B](var a: A, var b: B) {
+ override def toString = "" + ((a, b))
+ }
+ object O {
+ def apply[@specialized A, @specialized(AnyRef) B](a0: A, b0: B) = new Z(a0, b0)
+ }
+}
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ println(crasher.O("a", 2))
+ println(crasher.O(2, "a"))
+ }
+}