FIR checker: ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_(ANNOTATION|FUNCTION)
This commit is contained in:
committed by
teamcityserver
parent
e95de0a778
commit
dfc36ec614
@@ -6,7 +6,7 @@ fun foo(vararg x: Unit, y: Any) {}
|
||||
|
||||
fun main() {
|
||||
foo({ }(), y = { }())
|
||||
foo(x = *arrayOf({ }()), y = { }())
|
||||
foo(x = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arrayOf({ }())<!>, y = { }())
|
||||
foo(x = arrayOf({ }()), y = { }())
|
||||
foo(*arrayOf({ }()), y = { }())
|
||||
}
|
||||
|
||||
-25
@@ -1,25 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// !LANGUAGE: +UseCorrectExecutionOrderForVarargArguments
|
||||
// WITH_RUNTIME
|
||||
|
||||
fun foo(vararg x: Unit, y: Any) {}
|
||||
|
||||
fun main() {
|
||||
foo({ }(), y = { }())
|
||||
foo(x = *arrayOf({ }()), y = { }())
|
||||
foo(x = arrayOf({ }()), y = { }())
|
||||
foo(*arrayOf({ }()), y = { }())
|
||||
}
|
||||
|
||||
fun foo2(vararg x: Unit, y: Any, z: Any) {}
|
||||
|
||||
fun main2() {
|
||||
foo2(y = { }(), x = arrayOf({ }()), z = { }())
|
||||
}
|
||||
|
||||
fun foo3(vararg x: Unit, y: Any, z: Any = { }()) {}
|
||||
|
||||
fun main3() {
|
||||
// no warning, execution order is already right
|
||||
foo3(y = { }(), x = arrayOf({ }()))
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// !LANGUAGE: +UseCorrectExecutionOrderForVarargArguments
|
||||
// WITH_RUNTIME
|
||||
|
||||
Vendored
+1
-1
@@ -22,7 +22,7 @@ fun test1_2() {}
|
||||
@Ann2(*[])
|
||||
fun test2() {}
|
||||
|
||||
@Ann3(a = *[0f, <!DIVISION_BY_ZERO!>1 / 0f<!>])
|
||||
@Ann3(a = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>[0f, <!DIVISION_BY_ZERO!>1 / 0f<!>]<!>)
|
||||
fun test3() {}
|
||||
|
||||
@Ann5(Ann4(*["/"]))
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ fun test_fun(s: String, arr: Array<String>) {
|
||||
withVararg(<!ARGUMENT_TYPE_MISMATCH!>arr<!>) // Error
|
||||
withVararg(*arr) // OK
|
||||
withVararg(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>arr<!>) // Error
|
||||
withVararg(s = *arr) // OK
|
||||
withVararg(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arr<!>) // OK
|
||||
|
||||
withVararg(s) // OK
|
||||
withVararg(s = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>s<!>) // Error
|
||||
@@ -25,7 +25,7 @@ fun test_ann(s: String, arr: Array<String>) {
|
||||
foo()
|
||||
@Ann(s = [""], x = 1)
|
||||
foo()
|
||||
@Ann(s = *[""], x = 1)
|
||||
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>[""]<!>, x = 1)
|
||||
foo()
|
||||
|
||||
@Ann("", x = 1)
|
||||
|
||||
+2
-2
@@ -12,7 +12,7 @@ fun test_fun(s: String, arr: Array<String>) {
|
||||
withVararg(<!ARGUMENT_TYPE_MISMATCH!>arr<!>) // Error
|
||||
withVararg(*arr) // OK
|
||||
withVararg(s = arr) // OK
|
||||
withVararg(s = *arr) // Warning
|
||||
withVararg(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arr<!>) // Warning
|
||||
|
||||
withVararg(s) // OK
|
||||
withVararg(s = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>s<!>) // Error
|
||||
@@ -25,7 +25,7 @@ fun test_ann(s: String, arr: Array<String>) {
|
||||
foo()
|
||||
@Ann(s = [""], x = 1)
|
||||
foo()
|
||||
@Ann(s = *[""], x = 1)
|
||||
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>[""]<!>, x = 1)
|
||||
foo()
|
||||
|
||||
@Ann("", x = 1)
|
||||
|
||||
+1
-1
@@ -19,7 +19,7 @@ fun foo3() {}
|
||||
@Anno(value = <!NON_CONST_VAL_USED_IN_CONSTANT_EXPRESSION!>[<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstLong()<!>]<!>)
|
||||
fun foo4() {}
|
||||
|
||||
@Anno(value = *<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstArray<!>)
|
||||
@Anno(value = *<!ANNOTATION_ARGUMENT_MUST_BE_CONST, REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>nonConstArray<!>)
|
||||
fun bar1() {}
|
||||
|
||||
@Anno(*<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstArray<!>)
|
||||
|
||||
-26
@@ -1,26 +0,0 @@
|
||||
// !LANGUAGE: +ProhibitNonConstValuesAsVarargsInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm
|
||||
|
||||
val nonConstArray = longArrayOf(0)
|
||||
fun nonConstFun(): LongArray = TODO()
|
||||
|
||||
fun nonConstLong(): Long = TODO()
|
||||
|
||||
annotation class Anno(vararg val value: Long)
|
||||
|
||||
@Anno(value = <!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstArray<!>)
|
||||
fun foo1() {}
|
||||
|
||||
@Anno(value = <!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstFun()<!>)
|
||||
fun foo2() {}
|
||||
|
||||
@Anno(value = <!NON_CONST_VAL_USED_IN_CONSTANT_EXPRESSION!>longArrayOf(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstLong()<!>)<!>)
|
||||
fun foo3() {}
|
||||
|
||||
@Anno(value = <!NON_CONST_VAL_USED_IN_CONSTANT_EXPRESSION!>[<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstLong()<!>]<!>)
|
||||
fun foo4() {}
|
||||
|
||||
@Anno(value = *<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstArray<!>)
|
||||
fun bar1() {}
|
||||
|
||||
@Anno(*<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>nonConstArray<!>)
|
||||
fun bar2() {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +ProhibitNonConstValuesAsVarargsInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm
|
||||
|
||||
val nonConstArray = longArrayOf(0)
|
||||
|
||||
+2
-2
@@ -14,10 +14,10 @@ annotation class Ann(vararg val s: String)
|
||||
@Ann(s = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR!>"value"<!>)
|
||||
fun test1() {}
|
||||
|
||||
@Ann(s = *arrayOf("value"))
|
||||
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>arrayOf("value")<!>)
|
||||
fun test2() {}
|
||||
|
||||
@Ann(s = *["value"])
|
||||
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>["value"]<!>)
|
||||
fun test3() {}
|
||||
|
||||
@JavaAnn(value = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR!>"value"<!>)
|
||||
|
||||
+2
-2
@@ -14,10 +14,10 @@ annotation class Ann(vararg val s: String)
|
||||
@Ann(s = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_WARNING!>"value"<!>)
|
||||
fun test1() {}
|
||||
|
||||
@Ann(s = *arrayOf("value"))
|
||||
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>arrayOf("value")<!>)
|
||||
fun test2() {}
|
||||
|
||||
@Ann(s = *["value"])
|
||||
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>["value"]<!>)
|
||||
fun test3() {}
|
||||
|
||||
@JavaAnn(value = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_WARNING!>"value"<!>)
|
||||
|
||||
+6
-6
@@ -8,9 +8,9 @@ open class Cls(vararg p: Long)
|
||||
fun test(i: IntArray) {
|
||||
foo(s = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>1<!>)
|
||||
foo(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>i<!>)
|
||||
foo(s = *i)
|
||||
foo(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>i<!>)
|
||||
foo(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>intArrayOf(1)<!>)
|
||||
foo(s = *intArrayOf(1))
|
||||
foo(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>intArrayOf(1)<!>)
|
||||
foo(1)
|
||||
|
||||
Cls(p = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>1<!>)
|
||||
@@ -19,7 +19,7 @@ fun test(i: IntArray) {
|
||||
|
||||
val c = object : Cls(p = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>1<!>) {}
|
||||
|
||||
foo(s = *intArrayOf(elements = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>1<!>))
|
||||
foo(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>intArrayOf(elements = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>1<!>)<!>)
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ fun anyFoo(vararg a: Any) {}
|
||||
fun testAny() {
|
||||
anyFoo(a = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>""<!>)
|
||||
anyFoo(a = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>arrayOf("")<!>)
|
||||
anyFoo(a = *arrayOf(""))
|
||||
anyFoo(a = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arrayOf("")<!>)
|
||||
}
|
||||
|
||||
fun <T> genFoo(vararg t: T) {}
|
||||
@@ -37,11 +37,11 @@ fun testGen() {
|
||||
genFoo<Int>(t = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>1<!>)
|
||||
genFoo<Int?>(t = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR, NULL_FOR_NONNULL_TYPE!>null<!>)
|
||||
genFoo<Array<Int>>(t = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>arrayOf()<!>)
|
||||
genFoo<Array<Int>>(t = *arrayOf(arrayOf()))
|
||||
genFoo<Array<Int>>(t = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arrayOf(arrayOf())<!>)
|
||||
|
||||
genFoo(t = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>""<!>)
|
||||
genFoo(t = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>arrayOf("")<!>)
|
||||
genFoo(t = *arrayOf(""))
|
||||
genFoo(t = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arrayOf("")<!>)
|
||||
}
|
||||
|
||||
fun manyFoo(vararg v: Int) {}
|
||||
|
||||
+6
-6
@@ -8,9 +8,9 @@ open class Cls(vararg p: Long)
|
||||
fun test(i: IntArray) {
|
||||
foo(s = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>1<!>)
|
||||
foo(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>i<!>)
|
||||
foo(s = *i)
|
||||
foo(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>i<!>)
|
||||
foo(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>intArrayOf(1)<!>)
|
||||
foo(s = *intArrayOf(1))
|
||||
foo(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>intArrayOf(1)<!>)
|
||||
foo(1)
|
||||
|
||||
Cls(p = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>1<!>)
|
||||
@@ -19,7 +19,7 @@ fun test(i: IntArray) {
|
||||
|
||||
val c = object : Cls(p = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>1<!>) {}
|
||||
|
||||
foo(s = *intArrayOf(elements = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>1<!>))
|
||||
foo(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>intArrayOf(elements = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>1<!>)<!>)
|
||||
}
|
||||
|
||||
|
||||
@@ -28,7 +28,7 @@ fun anyFoo(vararg a: Any) {}
|
||||
fun testAny() {
|
||||
anyFoo(a = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>""<!>)
|
||||
anyFoo(a = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>arrayOf("")<!>)
|
||||
anyFoo(a = *arrayOf(""))
|
||||
anyFoo(a = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arrayOf("")<!>)
|
||||
}
|
||||
|
||||
fun <T> genFoo(vararg t: T) {}
|
||||
@@ -37,11 +37,11 @@ fun testGen() {
|
||||
genFoo<Int>(t = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>1<!>)
|
||||
genFoo<Int?>(t = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING, NULL_FOR_NONNULL_TYPE!>null<!>)
|
||||
genFoo<Array<Int>>(t = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>arrayOf()<!>)
|
||||
genFoo<Array<Int>>(t = *arrayOf(arrayOf()))
|
||||
genFoo<Array<Int>>(t = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arrayOf(arrayOf())<!>)
|
||||
|
||||
genFoo(t = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>""<!>)
|
||||
genFoo(t = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_WARNING!>arrayOf("")<!>)
|
||||
genFoo(t = *arrayOf(""))
|
||||
genFoo(t = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arrayOf("")<!>)
|
||||
}
|
||||
|
||||
fun manyFoo(vararg v: Int) {}
|
||||
|
||||
Vendored
+3
-3
@@ -5,7 +5,7 @@ annotation class Anno1(vararg val s: String)
|
||||
annotation class Anno2(vararg val i: Int)
|
||||
|
||||
@Anno1(s = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR!>"foo"<!>)
|
||||
@Anno2(i = *intArrayOf(1))
|
||||
@Anno2(i = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>intArrayOf(1)<!>)
|
||||
fun f1() {}
|
||||
|
||||
@Anno1(s = ["foo"])
|
||||
@@ -13,12 +13,12 @@ fun f1() {}
|
||||
fun f2() {}
|
||||
|
||||
@Anno1(s = arrayOf(elements = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>"foo"<!>))
|
||||
@Anno2(i = intArrayOf(elements = *intArrayOf(1)))
|
||||
@Anno2(i = intArrayOf(elements = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>intArrayOf(1)<!>))
|
||||
fun f3() {}
|
||||
|
||||
fun foo(vararg ints: Int) {}
|
||||
|
||||
fun test() {
|
||||
foo(ints = <!ARGUMENT_TYPE_MISMATCH, ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>1<!>)
|
||||
foo(ints = *intArrayOf(1))
|
||||
foo(ints = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>intArrayOf(1)<!>)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user