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"
|
// 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.expectActualLinker, expectActualLinker)
|
||||||
put(AnalysisFlags.explicitApiVersion, apiVersion != null)
|
put(AnalysisFlags.explicitApiVersion, apiVersion != null)
|
||||||
put(AnalysisFlags.allowResultReturnType, allowResultReturnType)
|
put(AnalysisFlags.allowResultReturnType, allowResultReturnType)
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ object AnalysisFlags {
|
|||||||
val expectActualLinker by AnalysisFlag.Delegates.Boolean
|
val expectActualLinker by AnalysisFlag.Delegates.Boolean
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val useExperimental by AnalysisFlag.Delegates.ListOfStrings
|
val optIn by AnalysisFlag.Delegates.ListOfStrings
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val explicitApiVersion by AnalysisFlag.Delegates.Boolean
|
val explicitApiVersion by AnalysisFlag.Delegates.Boolean
|
||||||
|
|||||||
+1
-1
@@ -57,7 +57,7 @@ object FirOptInAnnotationCallChecker : FirAnnotationCallChecker() {
|
|||||||
reporter: DiagnosticReporter
|
reporter: DiagnosticReporter
|
||||||
) {
|
) {
|
||||||
val languageVersionSettings = context.session.languageVersionSettings
|
val languageVersionSettings = context.session.languageVersionSettings
|
||||||
val useExperimentalFqNames = languageVersionSettings.getFlag(AnalysisFlags.useExperimental)
|
val useExperimentalFqNames = languageVersionSettings.getFlag(AnalysisFlags.optIn)
|
||||||
if (!languageVersionSettings.supportsFeature(LanguageFeature.OptInRelease) &&
|
if (!languageVersionSettings.supportsFeature(LanguageFeature.OptInRelease) &&
|
||||||
OptInNames.REQUIRES_OPT_IN_FQ_NAME.asString() !in useExperimentalFqNames
|
OptInNames.REQUIRES_OPT_IN_FQ_NAME.asString() !in useExperimentalFqNames
|
||||||
) {
|
) {
|
||||||
|
|||||||
+1
-1
@@ -209,7 +209,7 @@ object FirOptInUsageBaseChecker {
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
val languageVersionSettings = context.session.languageVersionSettings
|
val languageVersionSettings = context.session.languageVersionSettings
|
||||||
val fqNameAsString = annotationClassId.asFqNameString()
|
val fqNameAsString = annotationClassId.asFqNameString()
|
||||||
if (fqNameAsString in languageVersionSettings.getFlag(AnalysisFlags.useExperimental)) {
|
if (fqNameAsString in languageVersionSettings.getFlag(AnalysisFlags.optIn)) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
for (annotationContainer in context.annotationContainers) {
|
for (annotationContainer in context.annotationContainers) {
|
||||||
|
|||||||
+3
-3
@@ -284,7 +284,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker {
|
|||||||
languageVersionSettings: LanguageVersionSettings,
|
languageVersionSettings: LanguageVersionSettings,
|
||||||
bindingContext: BindingContext
|
bindingContext: BindingContext
|
||||||
): Boolean =
|
): Boolean =
|
||||||
annotationFqName.asString() in languageVersionSettings.getFlag(AnalysisFlags.useExperimental) ||
|
annotationFqName.asString() in languageVersionSettings.getFlag(AnalysisFlags.optIn) ||
|
||||||
anyParentMatches { element ->
|
anyParentMatches { element ->
|
||||||
element.isDeclarationAnnotatedWith(annotationFqName, bindingContext) ||
|
element.isDeclarationAnnotatedWith(annotationFqName, bindingContext) ||
|
||||||
element.isElementAnnotatedWithUseExperimentalOf(annotationFqName, bindingContext)
|
element.isElementAnnotatedWithUseExperimentalOf(annotationFqName, bindingContext)
|
||||||
@@ -358,7 +358,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker {
|
|||||||
return true
|
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()) {
|
if (fqName != REQUIRES_OPT_IN_FQ_NAME.asString() && fqName != OLD_EXPERIMENTAL_FQ_NAME.asString()) {
|
||||||
checkAnnotation(fqName)
|
checkAnnotation(fqName)
|
||||||
}
|
}
|
||||||
@@ -411,7 +411,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkUsageOfKotlinExperimentalOrUseExperimental(element: PsiElement, context: CheckerContext) {
|
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) &&
|
if (!context.languageVersionSettings.supportsFeature(LanguageFeature.OptInRelease) &&
|
||||||
REQUIRES_OPT_IN_FQ_NAME.asString() !in useExperimentalFqNames &&
|
REQUIRES_OPT_IN_FQ_NAME.asString() !in useExperimentalFqNames &&
|
||||||
OLD_EXPERIMENTAL_FQ_NAME.asString() !in useExperimentalFqNames
|
OLD_EXPERIMENTAL_FQ_NAME.asString() !in useExperimentalFqNames
|
||||||
|
|||||||
+1
-1
@@ -63,7 +63,7 @@ class LanguageVersionSettingsBuilder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val analysisFlags = listOfNotNull(
|
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.ignoreDataFlowInAssert, trueOrNull(LanguageSettingsDirectives.IGNORE_DATA_FLOW_IN_ASSERT in directives)),
|
||||||
analysisFlag(AnalysisFlags.constraintSystemForOverloadResolution, directives.singleOrZeroValue(LanguageSettingsDirectives.CONSTRAINT_SYSTEM_FOR_OVERLOAD_RESOLUTION)),
|
analysisFlag(AnalysisFlags.constraintSystemForOverloadResolution, directives.singleOrZeroValue(LanguageSettingsDirectives.CONSTRAINT_SYSTEM_FOR_OVERLOAD_RESOLUTION)),
|
||||||
analysisFlag(AnalysisFlags.allowResultReturnType, trueOrNull(LanguageSettingsDirectives.ALLOW_RESULT_RETURN_TYPE in directives)),
|
analysisFlag(AnalysisFlags.allowResultReturnType, trueOrNull(LanguageSettingsDirectives.ALLOW_RESULT_RETURN_TYPE in directives)),
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ object LanguageSettingsDirectives : SimpleDirectivesContainer() {
|
|||||||
// --------------------- Analysis Flags ---------------------
|
// --------------------- Analysis Flags ---------------------
|
||||||
|
|
||||||
val OPT_IN by stringDirective(
|
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(
|
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 languageFeaturesString = directives[LANGUAGE_DIRECTIVE]
|
||||||
|
|
||||||
val analysisFlags = listOfNotNull(
|
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(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.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),
|
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
|
LanguageFeature.MultiPlatformProjects to LanguageFeature.State.ENABLED
|
||||||
),
|
),
|
||||||
analysisFlags = mapOf(
|
analysisFlags = mapOf(
|
||||||
AnalysisFlags.useExperimental to listOf(
|
AnalysisFlags.optIn to listOf(
|
||||||
"kotlin.contracts.ExperimentalContracts",
|
"kotlin.contracts.ExperimentalContracts",
|
||||||
"kotlin.Experimental",
|
"kotlin.Experimental",
|
||||||
"kotlin.ExperimentalMultiplatform"
|
"kotlin.ExperimentalMultiplatform"
|
||||||
|
|||||||
+2
-2
@@ -353,8 +353,8 @@ class K2NativeCompilerArguments : CommonCompilerArguments() {
|
|||||||
|
|
||||||
override fun configureAnalysisFlags(collector: MessageCollector, languageVersion: LanguageVersion): MutableMap<AnalysisFlag<*>, Any> =
|
override fun configureAnalysisFlags(collector: MessageCollector, languageVersion: LanguageVersion): MutableMap<AnalysisFlag<*>, Any> =
|
||||||
super.configureAnalysisFlags(collector, languageVersion).also {
|
super.configureAnalysisFlags(collector, languageVersion).also {
|
||||||
val useExperimental = it[AnalysisFlags.useExperimental] as List<*>
|
val optInList = it[AnalysisFlags.optIn] as List<*>
|
||||||
it[AnalysisFlags.useExperimental] = useExperimental + listOf("kotlin.ExperimentalUnsignedTypes")
|
it[AnalysisFlags.optIn] = optInList + listOf("kotlin.ExperimentalUnsignedTypes")
|
||||||
if (printIr)
|
if (printIr)
|
||||||
phasesToDumpAfter = arrayOf("ALL")
|
phasesToDumpAfter = arrayOf("ALL")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user