diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirClassLiteralChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirClassLiteralChecker.kt index 7a0549bbcb1..ebb6796056f 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirClassLiteralChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirClassLiteralChecker.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.fir.analysis.checkers.expression import org.jetbrains.kotlin.KtFakeSourceElementKind +import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.diagnostics.reportOn import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext @@ -117,7 +118,7 @@ object FirClassLiteralChecker : FirGetClassCallChecker() { private fun ConeKotlinType.isAllowedInClassLiteral(context: CheckerContext): Boolean = when (this) { is ConeClassLikeType -> { - if (isNonPrimitiveArray) { + if (isNonPrimitiveArray && !context.languageVersionSettings.supportsFeature(LanguageFeature.ProhibitGenericArrayClassLiteral)) { typeArguments.none { typeArgument -> when (typeArgument) { is ConeStarProjection -> true diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/classLiteral/arrays_after.fir.kt b/compiler/testData/diagnostics/testsWithJsStdLib/classLiteral/arrays_after.fir.kt deleted file mode 100644 index 6d0f0f0e2e3..00000000000 --- a/compiler/testData/diagnostics/testsWithJsStdLib/classLiteral/arrays_after.fir.kt +++ /dev/null @@ -1,9 +0,0 @@ -// !LANGUAGE: +BareArrayClassLiteral +ProhibitGenericArrayClassLiteral - -val a01 = Array::class -val a02 = Array<Array>::class -val a03 = Array::class -val a04 = Array?>::class -val a05 = Array::class -val a06 = kotlin.Array::class -val a07 = kotlin.Array::class diff --git a/compiler/testData/diagnostics/testsWithJsStdLib/classLiteral/arrays_after.kt b/compiler/testData/diagnostics/testsWithJsStdLib/classLiteral/arrays_after.kt index d2c950c8d4b..a5c24eb3894 100644 --- a/compiler/testData/diagnostics/testsWithJsStdLib/classLiteral/arrays_after.kt +++ b/compiler/testData/diagnostics/testsWithJsStdLib/classLiteral/arrays_after.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL // !LANGUAGE: +BareArrayClassLiteral +ProhibitGenericArrayClassLiteral val a01 = Array::class