Refactor "do not check impl" flag for multi-platform projects
Instead of LanguageFeature, make it an AnalysisFlag, which is more clear
This commit is contained in:
@@ -270,9 +270,6 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
||||
if (arguments.multiPlatform) {
|
||||
extraLanguageFeatures.put(LanguageFeature.MultiPlatformProjects, LanguageFeature.State.ENABLED);
|
||||
}
|
||||
if (arguments.noCheckImpl) {
|
||||
extraLanguageFeatures.put(LanguageFeature.MultiPlatformDoNotCheckImpl, LanguageFeature.State.ENABLED);
|
||||
}
|
||||
|
||||
LanguageFeature.State coroutinesState = chooseCoroutinesApplicabilityLevel(configuration, arguments);
|
||||
if (coroutinesState != null) {
|
||||
@@ -282,6 +279,7 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
||||
LanguageVersionSettingsImpl settings =
|
||||
new LanguageVersionSettingsImpl(languageVersion, ApiVersion.createByLanguageVersion(apiVersion), extraLanguageFeatures);
|
||||
settings.switchFlag(AnalysisFlags.getSkipMetadataVersionCheck(), arguments.skipMetadataVersionCheck);
|
||||
settings.switchFlag(AnalysisFlags.getMultiPlatformDoNotCheckImpl(), arguments.noCheckImpl);
|
||||
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, settings);
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.resolve.checkers
|
||||
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
@@ -57,7 +58,7 @@ class HeaderImplDeclarationChecker(val moduleToCheck: ModuleDescriptor? = null)
|
||||
|
||||
if (descriptor !is MemberDescriptor) return
|
||||
|
||||
val checkImpl = !languageVersionSettings.supportsFeature(LanguageFeature.MultiPlatformDoNotCheckImpl)
|
||||
val checkImpl = !languageVersionSettings.isFlagEnabled(AnalysisFlags.multiPlatformDoNotCheckImpl)
|
||||
if (descriptor.isHeader && declaration.hasModifier(KtTokens.HEADER_KEYWORD)) {
|
||||
checkHeaderDeclarationHasImplementation(declaration, descriptor, diagnosticHolder, checkImpl)
|
||||
}
|
||||
|
||||
@@ -39,4 +39,7 @@ private operator fun AnalysisFlag.Companion.provideDelegate(instance: Any?, prop
|
||||
object AnalysisFlags {
|
||||
@JvmStatic
|
||||
val skipMetadataVersionCheck by AnalysisFlag
|
||||
|
||||
@JvmStatic
|
||||
val multiPlatformDoNotCheckImpl by AnalysisFlag
|
||||
}
|
||||
|
||||
@@ -52,8 +52,7 @@ enum class LanguageFeature(
|
||||
|
||||
Coroutines(KOTLIN_1_1, ApiVersion.KOTLIN_1_1, "https://kotlinlang.org/docs/diagnostics/experimental-coroutines", State.ENABLED_WITH_WARNING),
|
||||
|
||||
MultiPlatformProjects(null, defaultState = State.DISABLED),
|
||||
MultiPlatformDoNotCheckImpl(null, defaultState = State.DISABLED),
|
||||
MultiPlatformProjects(sinceVersion = null, defaultState = State.DISABLED),
|
||||
|
||||
;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user