[FE] Rename FreedomForSealedClasses feature with more meaningful name

This commit is contained in:
Dmitriy Novozhilov
2020-12-01 10:37:50 +03:00
committed by TeamCityServer
parent 77aad06008
commit b6bd7c48f4
20 changed files with 22 additions and 23 deletions
@@ -56,7 +56,7 @@ import org.jetbrains.kotlin.util.ReenteringLazyValueComputationException;
import java.util.*;
import static org.jetbrains.kotlin.config.LanguageFeature.FreedomForSealedClasses;
import static org.jetbrains.kotlin.config.LanguageFeature.AllowSealedInheritorsInDifferentFilesOfSamePackage;
import static org.jetbrains.kotlin.config.LanguageFeature.TopLevelSealedInheritance;
import static org.jetbrains.kotlin.diagnostics.Errors.*;
import static org.jetbrains.kotlin.resolve.BindingContext.*;
@@ -637,7 +637,7 @@ public class BodyResolver {
}
if (containingDescriptor == null) {
if (
!languageVersionSettings.supportsFeature(FreedomForSealedClasses) ||
!languageVersionSettings.supportsFeature(AllowSealedInheritorsInDifferentFilesOfSamePackage) ||
DescriptorUtils.isLocal(supertypeOwner)
) {
trace.report(SEALED_SUPERTYPE.on(typeReference));
@@ -392,7 +392,7 @@ class FunctionDescriptorResolver(
resolveValueParameters(constructorDescriptor, parameterScope, valueParameters, trace, null),
resolveVisibilityFromModifiers(
modifierList,
DescriptorUtils.getDefaultConstructorVisibility(classDescriptor, languageVersionSettings.supportsFeature(LanguageFeature.FreedomForSealedClasses))
DescriptorUtils.getDefaultConstructorVisibility(classDescriptor, languageVersionSettings.supportsFeature(LanguageFeature.AllowSealedInheritorsInDifferentFilesOfSamePackage))
)
)
constructor.returnType = classDescriptor.defaultType
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.resolve.bindingContextUtil.getAbbreviatedTypeOrType
object SealedInheritorInSamePackageChecker : DeclarationChecker {
override fun check(declaration: KtDeclaration, descriptor: DeclarationDescriptor, context: DeclarationCheckerContext) {
if (!context.languageVersionSettings.supportsFeature(LanguageFeature.FreedomForSealedClasses)) return
if (!context.languageVersionSettings.supportsFeature(LanguageFeature.AllowSealedInheritorsInDifferentFilesOfSamePackage)) return
if (descriptor !is ClassDescriptor || declaration !is KtClassOrObject) return
val classPackage = descriptor.containingPackage() ?: return // local class, SEALED_SUPERTYPE already reported
for (superTypeListEntry in declaration.superTypeListEntries) {
@@ -30,7 +30,6 @@ import org.jetbrains.kotlin.resolve.BindingContext;
import org.jetbrains.kotlin.resolve.BindingTrace;
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils;
import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.resolve.descriptorUtil.DescriptorUtilsKt;
import org.jetbrains.kotlin.resolve.lazy.ForceResolveUtil;
import org.jetbrains.kotlin.resolve.lazy.LazyClassContext;
import org.jetbrains.kotlin.resolve.lazy.LazyEntity;
@@ -270,7 +269,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
)
);
boolean freedomForSealedInterfacesSupported = c.getLanguageVersionSettings().supportsFeature(LanguageFeature.FreedomForSealedClasses);
boolean freedomForSealedInterfacesSupported = c.getLanguageVersionSettings().supportsFeature(LanguageFeature.AllowSealedInheritorsInDifferentFilesOfSamePackage);
this.sealedSubclasses = storageManager.createLazyValue(() -> c.getSealedClassInheritorsProvider().computeSealedSubclasses(this, freedomForSealedInterfacesSupported));
}
@@ -1,6 +1,6 @@
// ISSUE: KT-13495
// IGNORE_BACKEND_FIR: JVM_IR
// !LANGUAGE: +FreedomForSealedClasses
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
// FILE: Base.kt
@@ -1,7 +1,7 @@
warning: ATTENTION!
This build uses unsafe internal compiler arguments:
-XXLanguage:+FreedomForSealedClasses
-XXLanguage:+AllowSealedInheritorsInDifferentFilesOfSamePackage
-XXLanguage:+SealedInterfaces
This mode is not recommended for production use,
@@ -1,7 +1,7 @@
warning: ATTENTION!
This build uses unsafe internal compiler arguments:
-XXLanguage:+FreedomForSealedClasses
-XXLanguage:+AllowSealedInheritorsInDifferentFilesOfSamePackage
-XXLanguage:+SealedInterfaces
This mode is not recommended for production use,
@@ -1,6 +1,6 @@
// ISSUE: KT-13495
// !DIAGNOSTICS: -UNUSED_VARIABLE
// !LANGUAGE: +FreedomForSealedClasses
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
// FILE: Base.kt
@@ -1,6 +1,6 @@
// ISSUE: KT-13495
// !DIAGNOSTICS: -UNUSED_VARIABLE
// !LANGUAGE: +FreedomForSealedClasses
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
// FILE: Base.kt
@@ -1,5 +1,5 @@
// ISSUE: KT-13495
// !LANGUAGE: +FreedomForSealedClasses
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
// FILE: a.kt
@@ -1,5 +1,5 @@
// ISSUE: KT-13495
// !LANGUAGE: +FreedomForSealedClasses
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
// FILE: a.kt
@@ -1,5 +1,5 @@
// ISSUE: KT-13495
// !LANGUAGE: +FreedomForSealedClasses
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: base.kt
@@ -1,5 +1,5 @@
// ISSUE: KT-13495
// !LANGUAGE: +FreedomForSealedClasses
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
// !DIAGNOSTICS: -UNUSED_VARIABLE
// FILE: base.kt
@@ -1,5 +1,5 @@
// ISSUE: KT-20423
// !LANGUAGE: +SealedInterfaces +FreedomForSealedClasses
// !LANGUAGE: +SealedInterfaces +AllowSealedInheritorsInDifferentFilesOfSamePackage
// MODULE: m1
// FILE: a.kt
@@ -1,5 +1,5 @@
// ISSUE: KT-20423
// !LANGUAGE: +SealedInterfaces +FreedomForSealedClasses
// !LANGUAGE: +SealedInterfaces +AllowSealedInheritorsInDifferentFilesOfSamePackage
// MODULE: m1
// FILE: a.kt
@@ -1,5 +1,5 @@
// ISSUE: KT-20423
// !LANGUAGE: +SealedInterfaces +FreedomForSealedClasses
// !LANGUAGE: +SealedInterfaces +AllowSealedInheritorsInDifferentFilesOfSamePackage
// MODULE: m1
// FILE: a.kt
@@ -1,5 +1,5 @@
// ISSUE: KT-20423
// !LANGUAGE: +SealedInterfaces +FreedomForSealedClasses
// !LANGUAGE: +SealedInterfaces +AllowSealedInheritorsInDifferentFilesOfSamePackage
// MODULE: m1
// FILE: a.kt
@@ -1,6 +1,6 @@
// FIR_IDENTICAL
// ISSUE: KT-20423
// !LANGUAGE: +FreedomForSealedClasses +SealedInterfaces
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage +SealedInterfaces
// !DIAGNOSTICS: -UNUSED_VARIABLE
sealed interface Base
@@ -695,13 +695,13 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration
}
fun testSealedClassesAndInterfaces() {
val features = listOf("-XXLanguage:+FreedomForSealedClasses", "-XXLanguage:+SealedInterfaces")
val features = listOf("-XXLanguage:+AllowSealedInheritorsInDifferentFilesOfSamePackage", "-XXLanguage:+SealedInterfaces")
val library = compileLibrary("library", additionalOptions = features, checkKotlinOutput = {})
compileKotlin("main.kt", tmpdir, listOf(library), additionalOptions = features)
}
fun testSealedInheritorInDifferentModule() {
val features = listOf("-XXLanguage:+FreedomForSealedClasses", "-XXLanguage:+SealedInterfaces")
val features = listOf("-XXLanguage:+AllowSealedInheritorsInDifferentFilesOfSamePackage", "-XXLanguage:+SealedInterfaces")
val library = compileLibrary("library", additionalOptions = features, checkKotlinOutput = {})
compileKotlin("main.kt", tmpdir, listOf(library), additionalOptions = features)
}
@@ -143,7 +143,7 @@ enum class LanguageFeature(
UseCorrectExecutionOrderForVarargArguments(KOTLIN_1_5, kind = BUG_FIX),
JvmRecordSupport(KOTLIN_1_5),
FreedomForSealedClasses(KOTLIN_1_5),
AllowSealedInheritorsInDifferentFilesOfSamePackage(KOTLIN_1_5),
SealedInterfaces(KOTLIN_1_5),
// Temporarily disabled, see KT-27084/KT-22379