FIR: check multiple vararg param and forbidden vararg type

This commit is contained in:
Tianyu Geng
2021-02-22 18:24:46 -08:00
committed by Mikhail Glukhikh
parent 0e9474342d
commit bdeecfc188
22 changed files with 130 additions and 83 deletions
@@ -1,35 +0,0 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED
fun test(vararg x1: Int, vararg x2: Int) {
fun test2(vararg x1: Int, vararg x2: Int) {
class LocalClass(vararg x1: Int, vararg x2: Int) {
constructor(vararg x1: Int, vararg x2: Int, xx: Int) {}
}
fun test3(vararg x1: Int, vararg x2: Int) {}
}
}
fun Any.test(vararg x1: Int, vararg x2: Int, vararg x3: Int) {}
interface I {
fun test(vararg x1: Int, vararg x2: Int)
}
abstract class C(vararg x1: Int, vararg x2: Int, b: Boolean) {
fun test(vararg x1: Int, vararg x2: Int) {}
abstract fun test2(vararg x1: Int, vararg x2: Int)
class CC(vararg x1: Int, vararg x2: Int, b: Boolean) {
constructor(vararg x1: Int, vararg x2: Int) {}
fun test(vararg x1: Int, vararg x2: Int) {}
}
}
object O {
fun test(vararg x1: Int, vararg x2: Int) {}
class CC(vararg x1: Int, vararg x2: Int, b: Boolean) {
constructor(vararg x1: Int, vararg x2: Int) {}
fun test(vararg x1: Int, vararg x2: Int) {}
}
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -PRIMARY_CONSTRUCTOR_DELEGATION_CALL_EXPECTED
fun test(<!MULTIPLE_VARARG_PARAMETERS!>vararg<!> x1: Int, <!MULTIPLE_VARARG_PARAMETERS!>vararg<!> x2: Int) {
fun test2(<!MULTIPLE_VARARG_PARAMETERS!>vararg<!> x1: Int, <!MULTIPLE_VARARG_PARAMETERS!>vararg<!> x2: Int) {
@@ -2,11 +2,11 @@ fun f(
val a: Int,
var b: Int,
c: Int,
vararg var d: Int,
vararg val e: Int,
vararg f: Int
<!MULTIPLE_VARARG_PARAMETERS!>vararg<!> var d: Int,
<!MULTIPLE_VARARG_PARAMETERS!>vararg<!> val e: Int,
<!MULTIPLE_VARARG_PARAMETERS!>vararg<!> f: Int
) {
a + b + c + d[0] + e[0] + f[0] // to avoid 'unused parameter'
}
}