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 7efdb25c84e..9dc44f27ab8 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 @@ -382,6 +382,7 @@ abstract class CommonCompilerArguments : CommonToolArguments() { CompilerMessageSeverity.ERROR, "Unknown value for parameter -Xexplicit-api: '$explicitApi'. Value should be one of ${ExplicitApiMode.availableValues()}" ) + put(AnalysisFlags.extendedCompilerChecks, extendedCompilerChecks) } } @@ -431,10 +432,6 @@ abstract class CommonCompilerArguments : CommonToolArguments() { put(LanguageFeature.InferenceCompatibility, LanguageFeature.State.ENABLED) } - if (extendedCompilerChecks) { - put(LanguageFeature.ExtendedCompilerChecks, LanguageFeature.State.ENABLED) - } - if (progressiveMode) { LanguageFeature.values().filter { it.kind.enabledInProgressiveMode }.forEach { // Don't overwrite other settings: users may want to turn off some particular diff --git a/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/AnalyzerWithCompilerReport.kt b/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/AnalyzerWithCompilerReport.kt index 730a5558bd7..74a026062a7 100644 --- a/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/AnalyzerWithCompilerReport.kt +++ b/compiler/cli/src/org/jetbrains/kotlin/cli/common/messages/AnalyzerWithCompilerReport.kt @@ -25,8 +25,8 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.* import org.jetbrains.kotlin.codegen.state.IncompatibleClassTrackerImpl +import org.jetbrains.kotlin.config.AnalysisFlags import org.jetbrains.kotlin.config.CompilerConfiguration -import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.languageVersionSettings import org.jetbrains.kotlin.diagnostics.* @@ -73,7 +73,7 @@ class AnalyzerWithCompilerReport( .append(", unresolved supertypes: ").append(unresolved!!.joinToString()) .append("\n") } - if (!languageVersionSettings.supportsFeature(LanguageFeature.ExtendedCompilerChecks)) { + if (!languageVersionSettings.getFlag(AnalysisFlags.extendedCompilerChecks)) { message.append("Adding -Xextended-compiler-checks argument might provide additional information.\n") } messageCollector.report(ERROR, message.toString()) diff --git a/compiler/config/src/org/jetbrains/kotlin/config/AnalysisFlags.kt b/compiler/config/src/org/jetbrains/kotlin/config/AnalysisFlags.kt index 3cab8a5ff3a..00e02de39e0 100644 --- a/compiler/config/src/org/jetbrains/kotlin/config/AnalysisFlags.kt +++ b/compiler/config/src/org/jetbrains/kotlin/config/AnalysisFlags.kt @@ -50,4 +50,7 @@ object AnalysisFlags { @JvmStatic val libraryToSourceAnalysis by AnalysisFlag.Delegates.Boolean + + @JvmStatic + val extendedCompilerChecks by AnalysisFlag.Delegates.Boolean } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/MissingDependencySupertypeChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/MissingDependencySupertypeChecker.kt index 7ea1aa45dcd..f3fad310494 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/MissingDependencySupertypeChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/MissingDependencySupertypeChecker.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.resolve.checkers import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.config.AnalysisFlags import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.diagnostics.Errors @@ -50,7 +51,7 @@ object MissingDependencySupertypeChecker { context.trace, context.missingSupertypesResolver ) - val eagerChecksAllowed = context.languageVersionSettings.supportsFeature(LanguageFeature.ExtendedCompilerChecks) + val eagerChecksAllowed = context.languageVersionSettings.getFlag(AnalysisFlags.extendedCompilerChecks) val unresolvedLazySupertypesByDefault = descriptor is ConstructorDescriptor || descriptor is FakeCallableDescriptorForObject if (eagerChecksAllowed || !unresolvedLazySupertypesByDefault && !errorReported) { diff --git a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt index e7eff53f676..1fd27a05cc3 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt +++ b/compiler/util/src/org/jetbrains/kotlin/config/LanguageVersionSettings.kt @@ -168,8 +168,6 @@ enum class LanguageFeature( // Looks like we can't enable it until KT-26245 is fixed because otherwise some use cases become broken because of overrides ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated(sinceVersion = null, kind = BUG_FIX), - ExtendedCompilerChecks(sinceVersion = null), - // Experimental features Coroutines(