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:
@@ -236,9 +236,12 @@ private fun arrayAssignmentToVarargInNamedFormInAnnotation(
|
||||
): Boolean {
|
||||
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(
|
||||
@@ -249,7 +252,12 @@ private fun arrayAssignmentToVarargInNamedFormInFunction(
|
||||
): Boolean {
|
||||
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 {
|
||||
|
||||
Reference in New Issue
Block a user