[FE] Rename FreedomForSealedClasses feature with more meaningful name
This commit is contained in:
committed by
TeamCityServer
parent
77aad06008
commit
b6bd7c48f4
@@ -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
|
||||
|
||||
+1
-1
@@ -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) {
|
||||
|
||||
+1
-2
@@ -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
-1
@@ -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,
|
||||
|
||||
Vendored
+1
-1
@@ -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
-1
@@ -1,5 +1,5 @@
|
||||
// ISSUE: KT-13495
|
||||
// !LANGUAGE: +FreedomForSealedClasses
|
||||
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
// FILE: base.kt
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// ISSUE: KT-13495
|
||||
// !LANGUAGE: +FreedomForSealedClasses
|
||||
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
// FILE: base.kt
|
||||
|
||||
+1
-1
@@ -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
-1
@@ -1,5 +1,5 @@
|
||||
// ISSUE: KT-20423
|
||||
// !LANGUAGE: +SealedInterfaces +FreedomForSealedClasses
|
||||
// !LANGUAGE: +SealedInterfaces +AllowSealedInheritorsInDifferentFilesOfSamePackage
|
||||
|
||||
// MODULE: m1
|
||||
// FILE: a.kt
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
// ISSUE: KT-20423
|
||||
// !LANGUAGE: +SealedInterfaces +FreedomForSealedClasses
|
||||
// !LANGUAGE: +SealedInterfaces +AllowSealedInheritorsInDifferentFilesOfSamePackage
|
||||
|
||||
// MODULE: m1
|
||||
// FILE: a.kt
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// ISSUE: KT-20423
|
||||
// !LANGUAGE: +FreedomForSealedClasses +SealedInterfaces
|
||||
// !LANGUAGE: +AllowSealedInheritorsInDifferentFilesOfSamePackage +SealedInterfaces
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE
|
||||
|
||||
sealed interface Base
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user