summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/jvm/varargs.check2
-rw-r--r--test/files/jvm/varargs/JavaClass.java14
-rw-r--r--test/files/jvm/varargs/VaClass.scala12
-rw-r--r--test/files/jvm/varargs/varargs.scala21
-rw-r--r--test/files/neg/varargs.check7
-rw-r--r--test/files/neg/varargs.scala20
6 files changed, 76 insertions, 0 deletions
diff --git a/test/files/jvm/varargs.check b/test/files/jvm/varargs.check
new file mode 100644
index 0000000000..fef7448acb
--- /dev/null
+++ b/test/files/jvm/varargs.check
@@ -0,0 +1,2 @@
+7
+10 \ No newline at end of file
diff --git a/test/files/jvm/varargs/JavaClass.java b/test/files/jvm/varargs/JavaClass.java
new file mode 100644
index 0000000000..b5158f2878
--- /dev/null
+++ b/test/files/jvm/varargs/JavaClass.java
@@ -0,0 +1,14 @@
+
+
+
+public class JavaClass {
+ public static <T> void varargz(int i, T... v) {
+ }
+
+ public static void callSomeAnnotations() {
+ VaClass va = new VaClass();
+ va.vs(4, "", "", "");
+ va.vi(1, 2, 3, 4);
+ varargz(5, 1.0, 2.0, 3.0);
+ }
+} \ No newline at end of file
diff --git a/test/files/jvm/varargs/VaClass.scala b/test/files/jvm/varargs/VaClass.scala
new file mode 100644
index 0000000000..ffa25027d3
--- /dev/null
+++ b/test/files/jvm/varargs/VaClass.scala
@@ -0,0 +1,12 @@
+
+
+import annotation.varargs
+
+
+
+class VaClass {
+
+ @varargs def vs(a: Int, b: String*) = println(a + b.length)
+ @varargs def vi(a: Int, b: Int*) = println(a + b.sum)
+
+}
diff --git a/test/files/jvm/varargs/varargs.scala b/test/files/jvm/varargs/varargs.scala
new file mode 100644
index 0000000000..6d2e707bdf
--- /dev/null
+++ b/test/files/jvm/varargs/varargs.scala
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+object Test {
+ def main(args: Array[String]) {
+ JavaClass.callSomeAnnotations
+ }
+}
+
+
+
+
+
+
+
+
+
+
diff --git a/test/files/neg/varargs.check b/test/files/neg/varargs.check
new file mode 100644
index 0000000000..f3254708b8
--- /dev/null
+++ b/test/files/neg/varargs.check
@@ -0,0 +1,7 @@
+varargs.scala:11: error: A method without repeated parameters cannot be annotated with the `varargs` annotation.
+ @varargs def nov(a: Int) = 0
+ ^
+varargs.scala:13: error: A method with a varargs annotation produces a forwarder method with the same signature (a: Int,b: Array[java.lang.String])Int as an existing method.
+ @varargs def v2(a: Int, b: String*) = 0
+ ^
+two errors found \ No newline at end of file
diff --git a/test/files/neg/varargs.scala b/test/files/neg/varargs.scala
new file mode 100644
index 0000000000..a2f895a87d
--- /dev/null
+++ b/test/files/neg/varargs.scala
@@ -0,0 +1,20 @@
+
+
+
+import annotation.varargs
+
+
+
+// Failing varargs annotation
+object Test {
+
+ @varargs def nov(a: Int) = 0
+ @varargs def v(a: Int, b: String*) = a + b.length
+ @varargs def v2(a: Int, b: String*) = 0
+ def v2(a: Int, b: Array[String]) = 0
+
+ def main(args: Array[String]) {
+
+ }
+
+}