[FE 1.0] Drop ArrayLiteralsInAnnotations feature

This feature was introduced in 1.2, so now it's stable part of language
  and we can drop support of disabling it
This commit is contained in:
Dmitriy Novozhilov
2022-01-12 11:17:28 +03:00
committed by teamcity
parent ff7eb79bb1
commit c1575edca4
19 changed files with 11 additions and 34 deletions
@@ -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())
@@ -1,5 +1,3 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations
annotation class Foo(val a: IntArray, val b: Array<String>, val c: FloatArray)
@Foo([1], ["/"], [1f])
@@ -1,5 +1,3 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations
annotation class Foo(val a: IntArray, val b: Array<String>, val c: FloatArray)
@Foo([1], ["/"], [1f])
@@ -1,4 +1,4 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations +BareArrayClassLiteral
// !LANGUAGE: +BareArrayClassLiteral
import kotlin.reflect.KClass
@@ -1,4 +1,4 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations +BareArrayClassLiteral
// !LANGUAGE: +BareArrayClassLiteral
import kotlin.reflect.KClass
@@ -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])
@@ -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])
@@ -1,5 +1,3 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations
annotation class Foo(
val a: Array<String> = ["/"],
val b: Array<String> = [],
@@ -1,5 +1,3 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations
annotation class Foo(
val a: Array<String> = ["/"],
val b: Array<String> = [],
@@ -1,5 +1,3 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations
const val ONE = 1
annotation class Foo(
@@ -1,5 +1,3 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations
const val ONE = 1
annotation class Foo(
@@ -1,5 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +ArrayLiteralsInAnnotations
// !DIAGNOSTICS: -UNUSED_VARIABLE, -UNSUPPORTED
annotation class Anno(val a: Array<String> = [""], val b: IntArray = [])
@@ -16,4 +15,4 @@ fun local() {
val s1: Array<String> = [""]
val s2: Array<String> = []
}
}
@@ -1,4 +1,4 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations
// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations
// FILE: JavaAnn.java
@@ -1,4 +1,4 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations
// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations
// FILE: JavaAnn.java
@@ -1,4 +1,4 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm
// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm
// FILE: JavaAnn.java
@@ -1,4 +1,4 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm
// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations, +ProhibitAssigningSingleElementsToVarargsInNamedForm
// FILE: JavaAnn.java
@@ -1,4 +1,4 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations, -ProhibitAssigningSingleElementsToVarargsInNamedForm
// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations, -ProhibitAssigningSingleElementsToVarargsInNamedForm
// FILE: JavaAnn.java
@@ -1,4 +1,4 @@
// !LANGUAGE: +ArrayLiteralsInAnnotations, +AssigningArraysToVarargsInNamedFormInAnnotations, -ProhibitAssigningSingleElementsToVarargsInNamedForm
// !LANGUAGE: +AssigningArraysToVarargsInNamedFormInAnnotations, -ProhibitAssigningSingleElementsToVarargsInNamedForm
// FILE: JavaAnn.java
@@ -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),