Allow primitive types to be vararg elements disregarding their inline class status

This commit is contained in:
Svyatoslav Kuzmich
2018-12-24 14:14:07 +03:00
parent 80f1efaddc
commit 7e263fd68e
@@ -926,7 +926,9 @@ class DeclarationsChecker(
for (parameter in varargParameters) {
val varargElementType = parameter.varargElementType!!.upperIfFlexible()
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
trace.report(FORBIDDEN_VARARG_PARAMETER_TYPE.on(parameterDeclaration, varargElementType))