Rename AnalysisFlags.useExperimental to optIn
This commit is contained in:
committed by
TeamCityServer
parent
aedcec7715
commit
007cf2ce7c
+1
-1
@@ -405,7 +405,7 @@ abstract class CommonCompilerArguments : CommonToolArguments() {
|
||||
// WARNING, "'-Xopt-in' is deprecated and will be removed in a future release, please use -opt-in instead"
|
||||
// )
|
||||
}
|
||||
put(AnalysisFlags.useExperimental, useExperimentalFqNames + optInDeprecatedFqNames + optIn?.toList().orEmpty())
|
||||
put(AnalysisFlags.optIn, useExperimentalFqNames + optInDeprecatedFqNames + optIn?.toList().orEmpty())
|
||||
put(AnalysisFlags.expectActualLinker, expectActualLinker)
|
||||
put(AnalysisFlags.explicitApiVersion, apiVersion != null)
|
||||
put(AnalysisFlags.allowResultReturnType, allowResultReturnType)
|
||||
|
||||
@@ -19,7 +19,7 @@ object AnalysisFlags {
|
||||
val expectActualLinker by AnalysisFlag.Delegates.Boolean
|
||||
|
||||
@JvmStatic
|
||||
val useExperimental by AnalysisFlag.Delegates.ListOfStrings
|
||||
val optIn by AnalysisFlag.Delegates.ListOfStrings
|
||||
|
||||
@JvmStatic
|
||||
val explicitApiVersion by AnalysisFlag.Delegates.Boolean
|
||||
|
||||
+1
-1
@@ -57,7 +57,7 @@ object FirOptInAnnotationCallChecker : FirAnnotationCallChecker() {
|
||||
reporter: DiagnosticReporter
|
||||
) {
|
||||
val languageVersionSettings = context.session.languageVersionSettings
|
||||
val useExperimentalFqNames = languageVersionSettings.getFlag(AnalysisFlags.useExperimental)
|
||||
val useExperimentalFqNames = languageVersionSettings.getFlag(AnalysisFlags.optIn)
|
||||
if (!languageVersionSettings.supportsFeature(LanguageFeature.OptInRelease) &&
|
||||
OptInNames.REQUIRES_OPT_IN_FQ_NAME.asString() !in useExperimentalFqNames
|
||||
) {
|
||||
|
||||
+1
-1
@@ -209,7 +209,7 @@ object FirOptInUsageBaseChecker {
|
||||
): Boolean {
|
||||
val languageVersionSettings = context.session.languageVersionSettings
|
||||
val fqNameAsString = annotationClassId.asFqNameString()
|
||||
if (fqNameAsString in languageVersionSettings.getFlag(AnalysisFlags.useExperimental)) {
|
||||
if (fqNameAsString in languageVersionSettings.getFlag(AnalysisFlags.optIn)) {
|
||||
return true
|
||||
}
|
||||
for (annotationContainer in context.annotationContainers) {
|
||||
|
||||
+3
-3
@@ -284,7 +284,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker {
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
bindingContext: BindingContext
|
||||
): Boolean =
|
||||
annotationFqName.asString() in languageVersionSettings.getFlag(AnalysisFlags.useExperimental) ||
|
||||
annotationFqName.asString() in languageVersionSettings.getFlag(AnalysisFlags.optIn) ||
|
||||
anyParentMatches { element ->
|
||||
element.isDeclarationAnnotatedWith(annotationFqName, bindingContext) ||
|
||||
element.isElementAnnotatedWithUseExperimentalOf(annotationFqName, bindingContext)
|
||||
@@ -358,7 +358,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker {
|
||||
return true
|
||||
}
|
||||
|
||||
languageVersionSettings.getFlag(AnalysisFlags.useExperimental).forEach { fqName ->
|
||||
languageVersionSettings.getFlag(AnalysisFlags.optIn).forEach { fqName ->
|
||||
if (fqName != REQUIRES_OPT_IN_FQ_NAME.asString() && fqName != OLD_EXPERIMENTAL_FQ_NAME.asString()) {
|
||||
checkAnnotation(fqName)
|
||||
}
|
||||
@@ -411,7 +411,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker {
|
||||
}
|
||||
|
||||
private fun checkUsageOfKotlinExperimentalOrUseExperimental(element: PsiElement, context: CheckerContext) {
|
||||
val useExperimentalFqNames = context.languageVersionSettings.getFlag(AnalysisFlags.useExperimental)
|
||||
val useExperimentalFqNames = context.languageVersionSettings.getFlag(AnalysisFlags.optIn)
|
||||
if (!context.languageVersionSettings.supportsFeature(LanguageFeature.OptInRelease) &&
|
||||
REQUIRES_OPT_IN_FQ_NAME.asString() !in useExperimentalFqNames &&
|
||||
OLD_EXPERIMENTAL_FQ_NAME.asString() !in useExperimentalFqNames
|
||||
|
||||
+1
-1
@@ -63,7 +63,7 @@ class LanguageVersionSettingsBuilder {
|
||||
}
|
||||
|
||||
val analysisFlags = listOfNotNull(
|
||||
analysisFlag(AnalysisFlags.useExperimental, directives[LanguageSettingsDirectives.OPT_IN].takeIf { it.isNotEmpty() }),
|
||||
analysisFlag(AnalysisFlags.optIn, directives[LanguageSettingsDirectives.OPT_IN].takeIf { it.isNotEmpty() }),
|
||||
analysisFlag(AnalysisFlags.ignoreDataFlowInAssert, trueOrNull(LanguageSettingsDirectives.IGNORE_DATA_FLOW_IN_ASSERT in directives)),
|
||||
analysisFlag(AnalysisFlags.constraintSystemForOverloadResolution, directives.singleOrZeroValue(LanguageSettingsDirectives.CONSTRAINT_SYSTEM_FOR_OVERLOAD_RESOLUTION)),
|
||||
analysisFlag(AnalysisFlags.allowResultReturnType, trueOrNull(LanguageSettingsDirectives.ALLOW_RESULT_RETURN_TYPE in directives)),
|
||||
|
||||
+1
-1
@@ -28,7 +28,7 @@ object LanguageSettingsDirectives : SimpleDirectivesContainer() {
|
||||
// --------------------- Analysis Flags ---------------------
|
||||
|
||||
val OPT_IN by stringDirective(
|
||||
description = "List of opted in annotations (AnalysisFlags.useExperimental)"
|
||||
description = "List of opted in annotations (AnalysisFlags.optIn)"
|
||||
)
|
||||
|
||||
val IGNORE_DATA_FLOW_IN_ASSERT by directive(
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@ fun parseLanguageVersionSettings(directives: Directives): CompilerTestLanguageVe
|
||||
val languageFeaturesString = directives[LANGUAGE_DIRECTIVE]
|
||||
|
||||
val analysisFlags = listOfNotNull(
|
||||
analysisFlag(AnalysisFlags.useExperimental, directives[OPT_IN_DIRECTIVE]?.split(' ')),
|
||||
analysisFlag(AnalysisFlags.optIn, directives[OPT_IN_DIRECTIVE]?.split(' ')),
|
||||
analysisFlag(JvmAnalysisFlags.jvmDefaultMode, directives[JVM_DEFAULT_MODE]?.let { JvmDefaultMode.fromStringOrNull(it) }),
|
||||
analysisFlag(AnalysisFlags.ignoreDataFlowInAssert, if (IGNORE_DATA_FLOW_IN_ASSERT_DIRECTIVE in directives) true else null),
|
||||
analysisFlag(AnalysisFlags.skipMetadataVersionCheck, if (SKIP_METADATA_VERSION_CHECK in directives) true else null),
|
||||
|
||||
@@ -88,7 +88,7 @@ class GenerateIrRuntime {
|
||||
LanguageFeature.MultiPlatformProjects to LanguageFeature.State.ENABLED
|
||||
),
|
||||
analysisFlags = mapOf(
|
||||
AnalysisFlags.useExperimental to listOf(
|
||||
AnalysisFlags.optIn to listOf(
|
||||
"kotlin.contracts.ExperimentalContracts",
|
||||
"kotlin.Experimental",
|
||||
"kotlin.ExperimentalMultiplatform"
|
||||
|
||||
+2
-2
@@ -353,8 +353,8 @@ class K2NativeCompilerArguments : CommonCompilerArguments() {
|
||||
|
||||
override fun configureAnalysisFlags(collector: MessageCollector, languageVersion: LanguageVersion): MutableMap<AnalysisFlag<*>, Any> =
|
||||
super.configureAnalysisFlags(collector, languageVersion).also {
|
||||
val useExperimental = it[AnalysisFlags.useExperimental] as List<*>
|
||||
it[AnalysisFlags.useExperimental] = useExperimental + listOf("kotlin.ExperimentalUnsignedTypes")
|
||||
val optInList = it[AnalysisFlags.optIn] as List<*>
|
||||
it[AnalysisFlags.optIn] = optInList + listOf("kotlin.ExperimentalUnsignedTypes")
|
||||
if (printIr)
|
||||
phasesToDumpAfter = arrayOf("ALL")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user