Rename AnalysisFlags.useExperimental to optIn

This commit is contained in:
Mikhail Glukhikh
2021-09-03 17:49:36 +03:00
committed by TeamCityServer
parent aedcec7715
commit 007cf2ce7c
10 changed files with 13 additions and 13 deletions
@@ -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
@@ -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
) {
@@ -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) {
@@ -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
@@ -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)),
@@ -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(
@@ -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"
@@ -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")
}