diff --git a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt index efe615b0b77..2d03b4da713 100644 --- a/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt +++ b/compiler/cli/cli-common/src/org/jetbrains/kotlin/cli/common/arguments/CommonCompilerArguments.kt @@ -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) diff --git a/compiler/config/src/org/jetbrains/kotlin/config/AnalysisFlags.kt b/compiler/config/src/org/jetbrains/kotlin/config/AnalysisFlags.kt index 0382c044782..a74997d241d 100644 --- a/compiler/config/src/org/jetbrains/kotlin/config/AnalysisFlags.kt +++ b/compiler/config/src/org/jetbrains/kotlin/config/AnalysisFlags.kt @@ -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 diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInAnnotationCallChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInAnnotationCallChecker.kt index 84596363871..2572c904b33 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInAnnotationCallChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInAnnotationCallChecker.kt @@ -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 ) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInUsageBaseChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInUsageBaseChecker.kt index 835566ab615..2225dcffea7 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInUsageBaseChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirOptInUsageBaseChecker.kt @@ -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) { diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt index 99eff1e6919..7bfe8f9bce3 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt @@ -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 diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt index 48c580ff96d..778e83720a6 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/builders/LanguageVersionSettingsBuilder.kt @@ -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)), diff --git a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/LanguageSettingsDirectives.kt b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/LanguageSettingsDirectives.kt index 0a1009ea814..d8d29032f2b 100644 --- a/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/LanguageSettingsDirectives.kt +++ b/compiler/test-infrastructure/tests/org/jetbrains/kotlin/test/directives/LanguageSettingsDirectives.kt @@ -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( diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt index b5ccba99b2e..57f5d1c595a 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/CompilerTestLanguageVersionSettings.kt @@ -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), diff --git a/js/js.tests/test/org/jetbrains/kotlin/benchmarks/GenerateIrRuntime.kt b/js/js.tests/test/org/jetbrains/kotlin/benchmarks/GenerateIrRuntime.kt index bedc1abf1f9..94105e17f3a 100644 --- a/js/js.tests/test/org/jetbrains/kotlin/benchmarks/GenerateIrRuntime.kt +++ b/js/js.tests/test/org/jetbrains/kotlin/benchmarks/GenerateIrRuntime.kt @@ -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" diff --git a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt index 3b541bbe69b..621ccf7166f 100644 --- a/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt +++ b/kotlin-native/backend.native/cli.bc/src/org/jetbrains/kotlin/cli/bc/K2NativeCompilerArguments.kt @@ -353,8 +353,8 @@ class K2NativeCompilerArguments : CommonCompilerArguments() { override fun configureAnalysisFlags(collector: MessageCollector, languageVersion: LanguageVersion): MutableMap, 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") }