From 7e263fd68e360fd12afac78e878b447f7f2574c3 Mon Sep 17 00:00:00 2001 From: Svyatoslav Kuzmich Date: Mon, 24 Dec 2018 14:14:07 +0300 Subject: [PATCH] Allow primitive types to be vararg elements disregarding their inline class status --- .../src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt index 4bf6c60aedc..f046c89c5bf 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/DeclarationsChecker.kt @@ -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))