Allow primitive types to be vararg elements disregarding their inline class status
This commit is contained in:
@@ -926,7 +926,9 @@ class DeclarationsChecker(
|
|||||||
for (parameter in varargParameters) {
|
for (parameter in varargParameters) {
|
||||||
val varargElementType = parameter.varargElementType!!.upperIfFlexible()
|
val varargElementType = parameter.varargElementType!!.upperIfFlexible()
|
||||||
if (KotlinTypeChecker.DEFAULT.isSubtypeOf(varargElementType, nullableNothing) ||
|
if (KotlinTypeChecker.DEFAULT.isSubtypeOf(varargElementType, nullableNothing) ||
|
||||||
(varargElementType.isInlineClassType() && !UnsignedTypes.isUnsignedType(varargElementType))
|
(varargElementType.isInlineClassType() &&
|
||||||
|
!UnsignedTypes.isUnsignedType(varargElementType) &&
|
||||||
|
!KotlinBuiltIns.isPrimitiveTypeOrNullablePrimitiveType(varargElementType))
|
||||||
) {
|
) {
|
||||||
val parameterDeclaration = DescriptorToSourceUtils.descriptorToDeclaration(parameter) as? KtParameter ?: continue
|
val parameterDeclaration = DescriptorToSourceUtils.descriptorToDeclaration(parameter) as? KtParameter ?: continue
|
||||||
trace.report(FORBIDDEN_VARARG_PARAMETER_TYPE.on(parameterDeclaration, varargElementType))
|
trace.report(FORBIDDEN_VARARG_PARAMETER_TYPE.on(parameterDeclaration, varargElementType))
|
||||||
|
|||||||
Reference in New Issue
Block a user