Rename LV ImprovementsAroundTypeEnhancement into TypeEnhancementImprovementsInStrictMode
This commit is contained in:
@@ -141,7 +141,7 @@ fun StorageComponentContainer.configureJavaSpecificComponents(
|
||||
JavaResolverSettings.create(
|
||||
isReleaseCoroutines = languageVersionSettings.supportsFeature(LanguageFeature.ReleaseCoroutines),
|
||||
correctNullabilityForNotNullTypeParameter = languageVersionSettings.supportsFeature(LanguageFeature.ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated),
|
||||
typeEnhancementImprovements = languageVersionSettings.supportsFeature(LanguageFeature.ImprovementsAroundTypeEnhancement)
|
||||
typeEnhancementImprovementsInStrictMode = languageVersionSettings.supportsFeature(LanguageFeature.TypeEnhancementImprovementsInStrictMode)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
+1
-1
@@ -96,7 +96,7 @@ object JvmPlatformConfigurator : PlatformConfiguratorBase(
|
||||
) {
|
||||
override fun configureModuleComponents(container: StorageComponentContainer, languageVersionSettings: LanguageVersionSettings) {
|
||||
container.useImplIf<WarningAwareUpperBoundChecker>(
|
||||
!languageVersionSettings.supportsFeature(LanguageFeature.ImprovementsAroundTypeEnhancement)
|
||||
!languageVersionSettings.supportsFeature(LanguageFeature.TypeEnhancementImprovementsInStrictMode)
|
||||
)
|
||||
|
||||
container.useImpl<JavaNullabilityChecker>()
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
// FULL_JDK
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
// FULL_JDK
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -CAST_NEVER_SUCCEEDS
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: -ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: -TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: -ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: -TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: -ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: -TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// JAVAC_EXPECTED_FILE
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// JAVAC_EXPECTED_FILE
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// !LANGUAGE: -ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: -TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// JAVAC_EXPECTED_FILE
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// JAVAC_EXPECTED_FILE
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// JAVAC_EXPECTED_FILE
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// JAVAC_EXPECTED_FILE
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// JAVAC_EXPECTED_FILE
|
||||
// !LANGUAGE: +ImprovementsAroundTypeEnhancement
|
||||
// !LANGUAGE: +TypeEnhancementImprovementsInStrictMode
|
||||
|
||||
package test;
|
||||
|
||||
|
||||
@@ -161,7 +161,7 @@ enum class LanguageFeature(
|
||||
* - preference of a type use annotation to annotation of another type: KT-24392
|
||||
* (if @NotNull has TYPE_USE and METHOD target, then `@NotNull Integer []` -> `Array<Int>..Array<out Int>?` instead of `Array<Int>..Array<out Int>`)
|
||||
*/
|
||||
ImprovementsAroundTypeEnhancement(KOTLIN_1_6),
|
||||
TypeEnhancementImprovementsInStrictMode(KOTLIN_1_6),
|
||||
|
||||
// Temporarily disabled, see KT-27084/KT-22379
|
||||
SoundSmartcastFromLoopConditionForLoopAssignedVariables(sinceVersion = null, kind = BUG_FIX),
|
||||
|
||||
@@ -81,7 +81,7 @@ class JavaResolverComponents(
|
||||
interface JavaResolverSettings {
|
||||
val isReleaseCoroutines: Boolean
|
||||
val correctNullabilityForNotNullTypeParameter: Boolean
|
||||
val typeEnhancementImprovements: Boolean
|
||||
val typeEnhancementImprovementsInStrictMode: Boolean
|
||||
|
||||
object Default : JavaResolverSettings {
|
||||
override val isReleaseCoroutines: Boolean
|
||||
@@ -90,7 +90,7 @@ interface JavaResolverSettings {
|
||||
override val correctNullabilityForNotNullTypeParameter: Boolean
|
||||
get() = false
|
||||
|
||||
override val typeEnhancementImprovements: Boolean
|
||||
override val typeEnhancementImprovementsInStrictMode: Boolean
|
||||
get() = false
|
||||
}
|
||||
|
||||
@@ -98,12 +98,12 @@ interface JavaResolverSettings {
|
||||
fun create(
|
||||
isReleaseCoroutines: Boolean,
|
||||
correctNullabilityForNotNullTypeParameter: Boolean,
|
||||
typeEnhancementImprovements: Boolean
|
||||
typeEnhancementImprovementsInStrictMode: Boolean
|
||||
): JavaResolverSettings =
|
||||
object : JavaResolverSettings {
|
||||
override val isReleaseCoroutines get() = isReleaseCoroutines
|
||||
override val correctNullabilityForNotNullTypeParameter get() = correctNullabilityForNotNullTypeParameter
|
||||
override val typeEnhancementImprovements get() = typeEnhancementImprovements
|
||||
override val typeEnhancementImprovementsInStrictMode get() = typeEnhancementImprovementsInStrictMode
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -175,10 +175,10 @@ private fun LazyJavaResolverContext.extractDefaultNullabilityQualifier(
|
||||
return null
|
||||
}
|
||||
|
||||
val areImprovementsEnabled = components.settings.typeEnhancementImprovements
|
||||
val areImprovementsInStrictMode = components.settings.typeEnhancementImprovementsInStrictMode
|
||||
|
||||
val nullabilityQualifier =
|
||||
components.signatureEnhancement.extractNullability(typeQualifier, areImprovementsEnabled, typeParameterBounds = false)
|
||||
components.signatureEnhancement.extractNullability(typeQualifier, areImprovementsInStrictMode, typeParameterBounds = false)
|
||||
?.copy(isForWarningOnly = jsr305State.isWarning) ?: return null
|
||||
|
||||
return JavaDefaultQualifiers(nullabilityQualifier, applicability)
|
||||
|
||||
+2
-2
@@ -208,8 +208,8 @@ class LazyJavaClassDescriptor(
|
||||
|
||||
for (javaType in javaTypes) {
|
||||
val kotlinType = c.typeResolver.transformJavaType(javaType, TypeUsage.SUPERTYPE.toAttributes())
|
||||
val areImprovementsEnabled = c.components.settings.typeEnhancementImprovements
|
||||
val enhancedKotlinType = if (areImprovementsEnabled) {
|
||||
val areImprovementsInStrictMode = c.components.settings.typeEnhancementImprovementsInStrictMode
|
||||
val enhancedKotlinType = if (areImprovementsInStrictMode) {
|
||||
c.components.signatureEnhancement.enhanceSuperType(kotlinType, c)
|
||||
} else kotlinType
|
||||
|
||||
|
||||
+3
-3
@@ -320,10 +320,10 @@ class SignatureEnhancement(
|
||||
typeParameterForArgument: TypeParameterDescriptor?,
|
||||
isFromStarProjection: Boolean
|
||||
): JavaTypeQualifiers {
|
||||
val areImprovementsEnabled = containerContext.components.settings.typeEnhancementImprovements
|
||||
val areImprovementsInStrictMode = containerContext.components.settings.typeEnhancementImprovementsInStrictMode
|
||||
|
||||
val composedAnnotation =
|
||||
if (isHeadTypeConstructor && typeContainer != null && typeContainer !is TypeParameterDescriptor && areImprovementsEnabled) {
|
||||
if (isHeadTypeConstructor && typeContainer != null && typeContainer !is TypeParameterDescriptor && areImprovementsInStrictMode) {
|
||||
val filteredContainerAnnotations = typeContainer.annotations.filter {
|
||||
val (_, targets) = annotationTypeQualifierResolver.resolveAnnotation(it) ?: return@filter false
|
||||
/*
|
||||
@@ -357,7 +357,7 @@ class SignatureEnhancement(
|
||||
val (nullabilityFromBoundsForTypeBasedOnTypeParameter, isTypeParameterWithNotNullableBounds) =
|
||||
nullabilityInfoBoundsForTypeParameterUsage()
|
||||
|
||||
val annotationsNullability = composedAnnotation.extractNullability(areImprovementsEnabled, typeParameterBounds)
|
||||
val annotationsNullability = composedAnnotation.extractNullability(areImprovementsInStrictMode, typeParameterBounds)
|
||||
?.takeUnless { isFromStarProjection }
|
||||
val nullabilityInfo =
|
||||
annotationsNullability
|
||||
|
||||
Reference in New Issue
Block a user