From 5fd7a9503e44b8e95c0ca5aa4366270a3cd90155 Mon Sep 17 00:00:00 2001 From: Igor Mielientiev Date: Wed, 22 Mar 2017 16:24:15 +0200 Subject: Fix varargs in methods and constructors (#2135) * Fix varargs in methods (Issue: #1625) * Fix minor comments * Change varargs parameter message * Fix failed test, fix case for constructor --- tests/neg/varargsInMethodsT1625/allParamsAreVarArgs.scala | 3 +++ tests/neg/varargsInMethodsT1625/caseClassConstructorVarArgs.scala | 3 +++ tests/neg/varargsInMethodsT1625/classConstructorVarArgs.scala | 3 +++ tests/neg/varargsInMethodsT1625/curriedNegExample.scala | 3 +++ tests/neg/varargsInMethodsT1625/firstParamIsVarArgs.scala | 3 +++ tests/pos/varargsInMethodsT1625/curriedPosExample.scala | 3 +++ tests/pos/varargsInMethodsT1625/onlyOneVarArgs.scala | 3 +++ 7 files changed, 21 insertions(+) create mode 100644 tests/neg/varargsInMethodsT1625/allParamsAreVarArgs.scala create mode 100644 tests/neg/varargsInMethodsT1625/caseClassConstructorVarArgs.scala create mode 100644 tests/neg/varargsInMethodsT1625/classConstructorVarArgs.scala create mode 100644 tests/neg/varargsInMethodsT1625/curriedNegExample.scala create mode 100644 tests/neg/varargsInMethodsT1625/firstParamIsVarArgs.scala create mode 100644 tests/pos/varargsInMethodsT1625/curriedPosExample.scala create mode 100644 tests/pos/varargsInMethodsT1625/onlyOneVarArgs.scala (limited to 'tests') diff --git a/tests/neg/varargsInMethodsT1625/allParamsAreVarArgs.scala b/tests/neg/varargsInMethodsT1625/allParamsAreVarArgs.scala new file mode 100644 index 000000000..aabb1ecea --- /dev/null +++ b/tests/neg/varargsInMethodsT1625/allParamsAreVarArgs.scala @@ -0,0 +1,3 @@ +trait T3 { + def foo(x: String*, y: String*, c: String*): Int // error // error: varargs parameter must come last +} \ No newline at end of file diff --git a/tests/neg/varargsInMethodsT1625/caseClassConstructorVarArgs.scala b/tests/neg/varargsInMethodsT1625/caseClassConstructorVarArgs.scala new file mode 100644 index 000000000..8f8a4fcf6 --- /dev/null +++ b/tests/neg/varargsInMethodsT1625/caseClassConstructorVarArgs.scala @@ -0,0 +1,3 @@ +object T5 { + case class Abc(x: String*, c: String*) // error //error: varargs parameter must come last AND found: String* required: String +} \ No newline at end of file diff --git a/tests/neg/varargsInMethodsT1625/classConstructorVarArgs.scala b/tests/neg/varargsInMethodsT1625/classConstructorVarArgs.scala new file mode 100644 index 000000000..74595cb7d --- /dev/null +++ b/tests/neg/varargsInMethodsT1625/classConstructorVarArgs.scala @@ -0,0 +1,3 @@ +class Abc(val x: String*, val c: String*) { // error: varargs parameter must come last + def test = ??? +} \ No newline at end of file diff --git a/tests/neg/varargsInMethodsT1625/curriedNegExample.scala b/tests/neg/varargsInMethodsT1625/curriedNegExample.scala new file mode 100644 index 000000000..616ea0539 --- /dev/null +++ b/tests/neg/varargsInMethodsT1625/curriedNegExample.scala @@ -0,0 +1,3 @@ +trait T2 { + def foo(x: String*, y: String*)(z: Boolean*)(u: Int*, l: Int*): Int // error // error: varargs parameter must come last +} \ No newline at end of file diff --git a/tests/neg/varargsInMethodsT1625/firstParamIsVarArgs.scala b/tests/neg/varargsInMethodsT1625/firstParamIsVarArgs.scala new file mode 100644 index 000000000..eceb7e696 --- /dev/null +++ b/tests/neg/varargsInMethodsT1625/firstParamIsVarArgs.scala @@ -0,0 +1,3 @@ +trait T1 { + def foo(x: String*, y: String): Int // error: varargs parameter must come last +} \ No newline at end of file diff --git a/tests/pos/varargsInMethodsT1625/curriedPosExample.scala b/tests/pos/varargsInMethodsT1625/curriedPosExample.scala new file mode 100644 index 000000000..c614f2dee --- /dev/null +++ b/tests/pos/varargsInMethodsT1625/curriedPosExample.scala @@ -0,0 +1,3 @@ +trait T2 { + def foo(x: String, y: String*)(z: Boolean*)(u: Int, l: Int*): Int +} \ No newline at end of file diff --git a/tests/pos/varargsInMethodsT1625/onlyOneVarArgs.scala b/tests/pos/varargsInMethodsT1625/onlyOneVarArgs.scala new file mode 100644 index 000000000..834960b4a --- /dev/null +++ b/tests/pos/varargsInMethodsT1625/onlyOneVarArgs.scala @@ -0,0 +1,3 @@ +trait T1 { + def foo(x: String*): Int +} \ No newline at end of file -- cgit v1.2.3