diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/CollectionLiteralResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/CollectionLiteralResolver.kt index 4a98fa90c94..7abce7196f3 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/CollectionLiteralResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/CollectionLiteralResolver.kt @@ -42,8 +42,6 @@ class CollectionLiteralResolver( context.trace.report(UNSUPPORTED.on(collectionLiteralExpression, "Collection literals outside of annotations")) } - checkSupportsArrayLiterals(collectionLiteralExpression, context) - return resolveCollectionLiteralSpecialMethod(collectionLiteralExpression, context) } @@ -81,13 +79,6 @@ class CollectionLiteralResolver( return memberScopeOfKotlinPackage.getContributedFunctions(callName, KotlinLookupLocation(expression)) } - private fun checkSupportsArrayLiterals(expression: KtCollectionLiteralExpression, context: ExpressionTypingContext) { - if (isInsideAnnotationEntryOrClass(expression) && - !languageVersionSettings.supportsFeature(LanguageFeature.ArrayLiteralsInAnnotations)) { - context.trace.report(UNSUPPORTED_FEATURE.on(expression, LanguageFeature.ArrayLiteralsInAnnotations to languageVersionSettings)) - } - } - private fun isInsideAnnotationEntryOrClass(expression: KtCollectionLiteralExpression): Boolean { val parent = PsiTreeUtil.getParentOfType(expression, KtAnnotationEntry::class.java, KtClass::class.java) return parent is KtAnnotationEntry || (parent is KtClass && parent.isAnnotation()) diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotation.fir.kt b/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotation.fir.kt index a8a8d997300..7f72e048a44 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotation.fir.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotation.fir.kt @@ -1,5 +1,3 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations - annotation class Foo(val a: IntArray, val b: Array, val c: FloatArray) @Foo([1], ["/"], [1f]) diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotation.kt b/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotation.kt index 88e7357d6c9..d4736a8b08c 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotation.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotation.kt @@ -1,5 +1,3 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations - annotation class Foo(val a: IntArray, val b: Array, val c: FloatArray) @Foo([1], ["/"], [1f]) diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.fir.kt b/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.fir.kt index 24f9aed62a2..01392b2f838 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.fir.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations +BareArrayClassLiteral +// !LANGUAGE: +BareArrayClassLiteral import kotlin.reflect.KClass diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.kt b/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.kt index 9e5ad622427..22f6202b967 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/argumentsOfAnnotationWithKClass.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations +BareArrayClassLiteral +// !LANGUAGE: +BareArrayClassLiteral import kotlin.reflect.KClass diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/collectionLiteralsWithVarargs.fir.kt b/compiler/testData/diagnostics/tests/collectionLiterals/collectionLiteralsWithVarargs.fir.kt index 4b9071d8d44..195a73585a7 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/collectionLiteralsWithVarargs.fir.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/collectionLiteralsWithVarargs.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm +// !LANGUAGE: +ProhibitAssigningSingleElementsToVarargsInNamedForm annotation class Ann1(vararg val a: String = []) annotation class Ann2(vararg val a: Int = [1, 2]) diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/collectionLiteralsWithVarargs.kt b/compiler/testData/diagnostics/tests/collectionLiterals/collectionLiteralsWithVarargs.kt index ce2729b36e9..046ad99b2d1 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/collectionLiteralsWithVarargs.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/collectionLiteralsWithVarargs.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm +// !LANGUAGE: +ProhibitAssigningSingleElementsToVarargsInNamedForm annotation class Ann1(vararg val a: String = []) annotation class Ann2(vararg val a: Int = [1, 2]) diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesInAnnotation.fir.kt b/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesInAnnotation.fir.kt index 1e3d2ca23ed..2defd97549b 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesInAnnotation.fir.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesInAnnotation.fir.kt @@ -1,5 +1,3 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations - annotation class Foo( val a: Array = ["/"], val b: Array = [], diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesInAnnotation.kt b/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesInAnnotation.kt index 675c06b428b..d7740428160 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesInAnnotation.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesInAnnotation.kt @@ -1,5 +1,3 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations - annotation class Foo( val a: Array = ["/"], val b: Array = [], diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesWithConstantsInAnnotation.fir.kt b/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesWithConstantsInAnnotation.fir.kt index 786b23e29f1..6112f79db2b 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesWithConstantsInAnnotation.fir.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesWithConstantsInAnnotation.fir.kt @@ -1,5 +1,3 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations - const val ONE = 1 annotation class Foo( diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesWithConstantsInAnnotation.kt b/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesWithConstantsInAnnotation.kt index ac2bc8193e8..7c8c737943e 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesWithConstantsInAnnotation.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/defaultValuesWithConstantsInAnnotation.kt @@ -1,5 +1,3 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations - const val ONE = 1 annotation class Foo( diff --git a/compiler/testData/diagnostics/tests/collectionLiterals/resolveToFunctionFromBuiltIns.kt b/compiler/testData/diagnostics/tests/collectionLiterals/resolveToFunctionFromBuiltIns.kt index 8461651d41b..014ef161c35 100644 --- a/compiler/testData/diagnostics/tests/collectionLiterals/resolveToFunctionFromBuiltIns.kt +++ b/compiler/testData/diagnostics/tests/collectionLiterals/resolveToFunctionFromBuiltIns.kt @@ -1,5 +1,4 @@ // FIR_IDENTICAL -// !LANGUAGE: +ArrayLiteralsInAnnotations // !DIAGNOSTICS: -UNUSED_VARIABLE, -UNSUPPORTED annotation class Anno(val a: Array = [""], val b: IntArray = []) @@ -16,4 +15,4 @@ fun local() { val s1: Array = [""] val s2: Array = [] -} \ No newline at end of file +} diff --git a/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.fir.kt b/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.fir.kt index 1d53272c657..263ec4fdacf 100644 --- a/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.fir.kt +++ b/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations +// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations // FILE: JavaAnn.java diff --git a/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.kt b/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.kt index 490612be1c2..0363b6e4499 100644 --- a/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.kt +++ b/compiler/testData/diagnostics/tests/varargs/assigningArraysToVarargsInAnnotations.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations +// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations // FILE: JavaAnn.java diff --git a/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_after.fir.kt b/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_after.fir.kt index 9bfa8255bc9..4c27a56d4c8 100644 --- a/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_after.fir.kt +++ b/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_after.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm +// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm // FILE: JavaAnn.java diff --git a/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_after.kt b/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_after.kt index 1a65bf35926..789bc96b2fa 100644 --- a/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_after.kt +++ b/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_after.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm +// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm // FILE: JavaAnn.java diff --git a/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_before.fir.kt b/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_before.fir.kt index 65120850e83..1e809157b12 100644 --- a/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_before.fir.kt +++ b/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_before.fir.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations, -ProhibitAssigningSingleElementsToVarargsInNamedForm +// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations, -ProhibitAssigningSingleElementsToVarargsInNamedForm // FILE: JavaAnn.java diff --git a/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_before.kt b/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_before.kt index 2d0fe8c3ce0..330a20fc1aa 100644 --- a/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_before.kt +++ b/compiler/testData/diagnostics/tests/varargs/assigningSingleElementsInNamedFormAnnDeprecation_before.kt @@ -1,4 +1,4 @@ -// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations, -ProhibitAssigningSingleElementsToVarargsInNamedForm +// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations, -ProhibitAssigningSingleElementsToVarargsInNamedForm // FILE: JavaAnn.java diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt index cc486958297..164c8cb47b5 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt @@ -45,7 +45,6 @@ enum class LanguageFeature( // 1.2 - ArrayLiteralsInAnnotations(KOTLIN_1_2), InlineDefaultFunctionalParameters(KOTLIN_1_2), SoundSmartCastsAfterTry(KOTLIN_1_2), DeprecatedFieldForInvisibleCompanionObject(KOTLIN_1_2),