diff options
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/jvm/varargs.check | 2 | ||||
-rw-r--r-- | test/files/jvm/varargs/JavaClass.java | 14 | ||||
-rw-r--r-- | test/files/jvm/varargs/VaClass.scala | 12 | ||||
-rw-r--r-- | test/files/jvm/varargs/varargs.scala | 21 | ||||
-rw-r--r-- | test/files/neg/varargs.check | 7 | ||||
-rw-r--r-- | test/files/neg/varargs.scala | 20 |
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]) { + + } + +} |