Don't check an argument type during passing it to vararg in the named form to avoid false positives if the argument type is type variable yet
^KT-41144 Fixed
This commit is contained in:
+5
@@ -24860,6 +24860,11 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirOldFronte
|
|||||||
runTest("compiler/testData/diagnostics/tests/varargs/AmbiguousVararg.kt");
|
runTest("compiler/testData/diagnostics/tests/varargs/AmbiguousVararg.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("assignArrayToVararagInNamedFormWithInference.kt")
|
||||||
|
public void testAssignArrayToVararagInNamedFormWithInference() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedFormWithInference.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("assignArrayToVararagInNamedForm_1_3.kt")
|
@TestMetadata("assignArrayToVararagInNamedForm_1_3.kt")
|
||||||
public void testAssignArrayToVararagInNamedForm_1_3() throws Exception {
|
public void testAssignArrayToVararagInNamedForm_1_3() throws Exception {
|
||||||
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt");
|
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt");
|
||||||
|
|||||||
@@ -236,9 +236,12 @@ private fun arrayAssignmentToVarargInNamedFormInAnnotation(
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
if (!languageVersionSettings.supportsFeature(LanguageFeature.AssigningArraysToVarargsInNamedFormInAnnotations)) return false
|
if (!languageVersionSettings.supportsFeature(LanguageFeature.AssigningArraysToVarargsInNamedFormInAnnotations)) return false
|
||||||
|
|
||||||
if (!isParameterOfAnnotation(parameterDescriptor)) return false
|
val isAllowedAssigningSingleElementsToVarargsInNamedForm =
|
||||||
|
!languageVersionSettings.supportsFeature(LanguageFeature.ProhibitAssigningSingleElementsToVarargsInNamedForm)
|
||||||
|
|
||||||
return argument.isNamed() && parameterDescriptor.isVararg && isArrayOrArrayLiteral(argument, trace)
|
if (isAllowedAssigningSingleElementsToVarargsInNamedForm && !isArrayOrArrayLiteral(argument, trace)) return false
|
||||||
|
|
||||||
|
return isParameterOfAnnotation(parameterDescriptor) && argument.isNamed() && parameterDescriptor.isVararg
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun arrayAssignmentToVarargInNamedFormInFunction(
|
private fun arrayAssignmentToVarargInNamedFormInFunction(
|
||||||
@@ -249,7 +252,12 @@ private fun arrayAssignmentToVarargInNamedFormInFunction(
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
if (!languageVersionSettings.supportsFeature(LanguageFeature.AllowAssigningArrayElementsToVarargsInNamedFormForFunctions)) return false
|
if (!languageVersionSettings.supportsFeature(LanguageFeature.AllowAssigningArrayElementsToVarargsInNamedFormForFunctions)) return false
|
||||||
|
|
||||||
return argument.isNamed() && parameterDescriptor.isVararg && isArrayOrArrayLiteral(argument, trace)
|
val isAllowedAssigningSingleElementsToVarargsInNamedForm =
|
||||||
|
!languageVersionSettings.supportsFeature(LanguageFeature.ProhibitAssigningSingleElementsToVarargsInNamedForm)
|
||||||
|
|
||||||
|
if (isAllowedAssigningSingleElementsToVarargsInNamedForm && !isArrayOrArrayLiteral(argument, trace)) return false
|
||||||
|
|
||||||
|
return argument.isNamed() && parameterDescriptor.isVararg
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isArrayOrArrayLiteral(argument: ValueArgument, trace: BindingTrace): Boolean {
|
fun isArrayOrArrayLiteral(argument: ValueArgument, trace: BindingTrace): Boolean {
|
||||||
|
|||||||
+10
-4
@@ -151,9 +151,12 @@ private fun KotlinCallArgument.isArrayAssignedAsNamedArgumentInAnnotation(
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
if (!languageVersionSettings.supportsFeature(LanguageFeature.AssigningArraysToVarargsInNamedFormInAnnotations)) return false
|
if (!languageVersionSettings.supportsFeature(LanguageFeature.AssigningArraysToVarargsInNamedFormInAnnotations)) return false
|
||||||
|
|
||||||
if (this.argumentName == null || !parameter.isVararg) return false
|
val isAllowedAssigningSingleElementsToVarargsInNamedForm =
|
||||||
|
!languageVersionSettings.supportsFeature(LanguageFeature.ProhibitAssigningSingleElementsToVarargsInNamedForm)
|
||||||
|
|
||||||
return isParameterOfAnnotation(parameter) && this.isArrayOrArrayLiteral()
|
if (isAllowedAssigningSingleElementsToVarargsInNamedForm && !isArrayOrArrayLiteral()) return false
|
||||||
|
|
||||||
|
return this.argumentName != null && parameter.isVararg && isParameterOfAnnotation(parameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun KotlinCallArgument.isArrayAssignedAsNamedArgumentInFunction(
|
private fun KotlinCallArgument.isArrayAssignedAsNamedArgumentInFunction(
|
||||||
@@ -162,9 +165,12 @@ private fun KotlinCallArgument.isArrayAssignedAsNamedArgumentInFunction(
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
if (!languageVersionSettings.supportsFeature(LanguageFeature.AllowAssigningArrayElementsToVarargsInNamedFormForFunctions)) return false
|
if (!languageVersionSettings.supportsFeature(LanguageFeature.AllowAssigningArrayElementsToVarargsInNamedFormForFunctions)) return false
|
||||||
|
|
||||||
if (this.argumentName == null || !parameter.isVararg) return false
|
val isAllowedAssigningSingleElementsToVarargsInNamedForm =
|
||||||
|
!languageVersionSettings.supportsFeature(LanguageFeature.ProhibitAssigningSingleElementsToVarargsInNamedForm)
|
||||||
|
|
||||||
return this.isArrayOrArrayLiteral()
|
if (isAllowedAssigningSingleElementsToVarargsInNamedForm && !isArrayOrArrayLiteral()) return false
|
||||||
|
|
||||||
|
return this.argumentName != null && parameter.isVararg
|
||||||
}
|
}
|
||||||
|
|
||||||
fun KotlinCallArgument.isArrayOrArrayLiteral(): Boolean {
|
fun KotlinCallArgument.isArrayOrArrayLiteral(): Boolean {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ fun main() {
|
|||||||
join(1, "2", "3")
|
join(1, "2", "3")
|
||||||
join(<!NON_VARARG_SPREAD!>*<!>1, "2")
|
join(<!NON_VARARG_SPREAD!>*<!>1, "2")
|
||||||
join(1, *<!TYPE_MISMATCH!>"2"<!>)
|
join(1, *<!TYPE_MISMATCH!>"2"<!>)
|
||||||
join(x = 1, a = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>"2"<!>)
|
join(x = 1, a = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR, NI;TYPE_MISMATCH!>"2"<!>)
|
||||||
join(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
|
join(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
|
||||||
join(x = 1, a = a)
|
join(x = 1, a = a)
|
||||||
join(x = 1, a = <!TYPE_MISMATCH!>b<!>)
|
join(x = 1, a = <!TYPE_MISMATCH!>b<!>)
|
||||||
@@ -33,7 +33,7 @@ fun main() {
|
|||||||
joinG<String>(<!NON_VARARG_SPREAD!>*<!>1, "2")
|
joinG<String>(<!NON_VARARG_SPREAD!>*<!>1, "2")
|
||||||
joinG<String>(1, *<!TYPE_MISMATCH!>"2"<!>)
|
joinG<String>(1, *<!TYPE_MISMATCH!>"2"<!>)
|
||||||
joinG<String>(x = 1, a = a)
|
joinG<String>(x = 1, a = a)
|
||||||
joinG<String>(x = 1, a = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>"2"<!>)
|
joinG<String>(x = 1, a = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR, NI;TYPE_MISMATCH!>"2"<!>)
|
||||||
joinG<String>(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
|
joinG<String>(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
|
||||||
joinG<String>(1, *a)
|
joinG<String>(1, *a)
|
||||||
joinG<String>(1, *a, "3")
|
joinG<String>(1, *a, "3")
|
||||||
@@ -46,7 +46,7 @@ fun main() {
|
|||||||
joinG(<!NON_VARARG_SPREAD!>*<!>1, "2")
|
joinG(<!NON_VARARG_SPREAD!>*<!>1, "2")
|
||||||
<!OI;TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>joinG<!>(1, *<!TYPE_MISMATCH!>"2"<!>)
|
<!OI;TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>joinG<!>(1, *<!TYPE_MISMATCH!>"2"<!>)
|
||||||
joinG(x = 1, a = a)
|
joinG(x = 1, a = a)
|
||||||
joinG(x = 1, a = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>"2"<!>)
|
joinG(x = 1, a = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR, NI;TYPE_MISMATCH!>"2"<!>)
|
||||||
<!OI;TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>joinG<!>(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
|
<!OI;TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR!>joinG<!>(x = <!NON_VARARG_SPREAD!>*<!>1, a = *<!TYPE_MISMATCH!>"2"<!>)
|
||||||
joinG(1, *a)
|
joinG(1, *a)
|
||||||
joinG(1, *a, "3")
|
joinG(1, *a, "3")
|
||||||
|
|||||||
Vendored
+1
-1
@@ -8,6 +8,6 @@ fun overloadedFun(arg: String, vararg args: String) = X1
|
|||||||
fun overloadedFun(arg: String, vararg args: String, flag: Boolean = true) = X2
|
fun overloadedFun(arg: String, vararg args: String, flag: Boolean = true) = X2
|
||||||
|
|
||||||
val test1a: X1 = overloadedFun("", "")
|
val test1a: X1 = overloadedFun("", "")
|
||||||
val test1b: X1 = overloadedFun("", args = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>""<!>)
|
val test1b: X1 = overloadedFun("", args = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR, TYPE_MISMATCH!>""<!>)
|
||||||
val test1c: X2 = overloadedFun("", "", "", flag = true)
|
val test1c: X2 = overloadedFun("", "", "", flag = true)
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -9,5 +9,5 @@ fun overloadedFun5(s: String, vararg ss: String) = X2
|
|||||||
|
|
||||||
val test1 = <!OVERLOAD_RESOLUTION_AMBIGUITY!>overloadedFun5<!>("")
|
val test1 = <!OVERLOAD_RESOLUTION_AMBIGUITY!>overloadedFun5<!>("")
|
||||||
val test2 = <!OVERLOAD_RESOLUTION_AMBIGUITY!>overloadedFun5<!>("", "")
|
val test2 = <!OVERLOAD_RESOLUTION_AMBIGUITY!>overloadedFun5<!>("", "")
|
||||||
val test3: X2 = overloadedFun5(s = "", ss = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>""<!>)
|
val test3: X2 = <!NONE_APPLICABLE!>overloadedFun5<!>(<!DEBUG_INFO_MISSING_UNRESOLVED!>s<!> = "", <!DEBUG_INFO_MISSING_UNRESOLVED!>ss<!> = "")
|
||||||
val test4: X1 = overloadedFun5(ss = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>""<!>)
|
val test4: X1 = overloadedFun5(ss = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR, TYPE_MISMATCH!>""<!>)
|
||||||
Vendored
+10
@@ -0,0 +1,10 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
|
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
|
||||||
|
fun <K> id(x: K) = x
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
foo(x = id(arrayOf(1)))
|
||||||
|
}
|
||||||
|
|
||||||
|
fun <T> foo(vararg x: T) {}
|
||||||
Vendored
+5
@@ -0,0 +1,5 @@
|
|||||||
|
package
|
||||||
|
|
||||||
|
public fun </*0*/ T> foo(/*0*/ vararg x: T /*kotlin.Array<out T>*/): kotlin.Unit
|
||||||
|
public fun </*0*/ K> id(/*0*/ x: K): K
|
||||||
|
public fun main(): kotlin.Unit
|
||||||
+1
-1
@@ -31,6 +31,6 @@ fun test_ann(s: String, arr: Array<String>) {
|
|||||||
|
|
||||||
@Ann("", x = 1)
|
@Ann("", x = 1)
|
||||||
foo()
|
foo()
|
||||||
@Ann(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR!>""<!>, x = 1)
|
@Ann(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR, NI;TYPE_MISMATCH!>""<!>, x = 1)
|
||||||
foo()
|
foo()
|
||||||
}
|
}
|
||||||
+2
-2
@@ -16,7 +16,7 @@ fun test_fun(s: String, arr: Array<String>) {
|
|||||||
withVararg(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arr<!>) // Warning
|
withVararg(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>arr<!>) // Warning
|
||||||
|
|
||||||
withVararg(s) // OK
|
withVararg(s) // OK
|
||||||
withVararg(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>s<!>) // Error
|
withVararg(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR, NI;TYPE_MISMATCH!>s<!>) // Error
|
||||||
}
|
}
|
||||||
|
|
||||||
fun test_ann(s: String, arr: Array<String>) {
|
fun test_ann(s: String, arr: Array<String>) {
|
||||||
@@ -31,6 +31,6 @@ fun test_ann(s: String, arr: Array<String>) {
|
|||||||
|
|
||||||
@Ann("", x = 1)
|
@Ann("", x = 1)
|
||||||
foo()
|
foo()
|
||||||
@Ann(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR!>""<!>, x = 1)
|
@Ann(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR, NI;TYPE_MISMATCH!>""<!>, x = 1)
|
||||||
foo()
|
foo()
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
annotation class Ann(vararg val s: String)
|
annotation class Ann(vararg val s: String)
|
||||||
|
|
||||||
@Ann(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR!>"value"<!>)
|
@Ann(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR, TYPE_MISMATCH!>"value"<!>)
|
||||||
fun test1() {}
|
fun test1() {}
|
||||||
|
|
||||||
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>arrayOf("value")<!>)
|
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>arrayOf("value")<!>)
|
||||||
@@ -20,7 +20,7 @@ fun test2() {}
|
|||||||
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>["value"]<!>)
|
@Ann(s = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>["value"]<!>)
|
||||||
fun test3() {}
|
fun test3() {}
|
||||||
|
|
||||||
@JavaAnn(value = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR!>"value"<!>)
|
@JavaAnn(value = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR, TYPE_MISMATCH!>"value"<!>)
|
||||||
fun test4() {}
|
fun test4() {}
|
||||||
|
|
||||||
@JavaAnn("value", path = arrayOf("path"))
|
@JavaAnn("value", path = arrayOf("path"))
|
||||||
|
|||||||
+2
-2
@@ -4,7 +4,7 @@
|
|||||||
annotation class Anno1(vararg val s: String)
|
annotation class Anno1(vararg val s: String)
|
||||||
annotation class Anno2(vararg val i: Int)
|
annotation class Anno2(vararg val i: Int)
|
||||||
|
|
||||||
@Anno1(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR!>"foo"<!>)
|
@Anno1(s = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_ANNOTATION_ERROR, TYPE_MISMATCH!>"foo"<!>)
|
||||||
@Anno2(i = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>intArrayOf(1)<!>)
|
@Anno2(i = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_ANNOTATION!>intArrayOf(1)<!>)
|
||||||
fun f1() {}
|
fun f1() {}
|
||||||
|
|
||||||
@@ -15,6 +15,6 @@ fun f2() {}
|
|||||||
fun foo(vararg ints: Int) {}
|
fun foo(vararg ints: Int) {}
|
||||||
|
|
||||||
fun test() {
|
fun test() {
|
||||||
foo(ints = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR!>1<!>)
|
foo(ints = <!ASSIGNING_SINGLE_ELEMENT_TO_VARARG_IN_NAMED_FORM_FUNCTION_ERROR, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>)
|
||||||
foo(ints = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>intArrayOf(1)<!>)
|
foo(ints = *<!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>intArrayOf(1)<!>)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24942,6 +24942,11 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTestWithFirVali
|
|||||||
runTest("compiler/testData/diagnostics/tests/varargs/AmbiguousVararg.kt");
|
runTest("compiler/testData/diagnostics/tests/varargs/AmbiguousVararg.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("assignArrayToVararagInNamedFormWithInference.kt")
|
||||||
|
public void testAssignArrayToVararagInNamedFormWithInference() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedFormWithInference.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("assignArrayToVararagInNamedForm_1_3.kt")
|
@TestMetadata("assignArrayToVararagInNamedForm_1_3.kt")
|
||||||
public void testAssignArrayToVararagInNamedForm_1_3() throws Exception {
|
public void testAssignArrayToVararagInNamedForm_1_3() throws Exception {
|
||||||
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt");
|
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt");
|
||||||
|
|||||||
Generated
+5
@@ -24862,6 +24862,11 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing
|
|||||||
runTest("compiler/testData/diagnostics/tests/varargs/AmbiguousVararg.kt");
|
runTest("compiler/testData/diagnostics/tests/varargs/AmbiguousVararg.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("assignArrayToVararagInNamedFormWithInference.kt")
|
||||||
|
public void testAssignArrayToVararagInNamedFormWithInference() throws Exception {
|
||||||
|
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedFormWithInference.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("assignArrayToVararagInNamedForm_1_3.kt")
|
@TestMetadata("assignArrayToVararagInNamedForm_1_3.kt")
|
||||||
public void testAssignArrayToVararagInNamedForm_1_3() throws Exception {
|
public void testAssignArrayToVararagInNamedForm_1_3() throws Exception {
|
||||||
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt");
|
runTest("compiler/testData/diagnostics/tests/varargs/assignArrayToVararagInNamedForm_1_3.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user