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) {
|
if (arguments.multiPlatform) {
|
||||||
extraLanguageFeatures.put(LanguageFeature.MultiPlatformProjects, LanguageFeature.State.ENABLED);
|
extraLanguageFeatures.put(LanguageFeature.MultiPlatformProjects, LanguageFeature.State.ENABLED);
|
||||||
}
|
}
|
||||||
if (arguments.noCheckImpl) {
|
|
||||||
extraLanguageFeatures.put(LanguageFeature.MultiPlatformDoNotCheckImpl, LanguageFeature.State.ENABLED);
|
|
||||||
}
|
|
||||||
|
|
||||||
LanguageFeature.State coroutinesState = chooseCoroutinesApplicabilityLevel(configuration, arguments);
|
LanguageFeature.State coroutinesState = chooseCoroutinesApplicabilityLevel(configuration, arguments);
|
||||||
if (coroutinesState != null) {
|
if (coroutinesState != null) {
|
||||||
@@ -282,6 +279,7 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
|||||||
LanguageVersionSettingsImpl settings =
|
LanguageVersionSettingsImpl settings =
|
||||||
new LanguageVersionSettingsImpl(languageVersion, ApiVersion.createByLanguageVersion(apiVersion), extraLanguageFeatures);
|
new LanguageVersionSettingsImpl(languageVersion, ApiVersion.createByLanguageVersion(apiVersion), extraLanguageFeatures);
|
||||||
settings.switchFlag(AnalysisFlags.getSkipMetadataVersionCheck(), arguments.skipMetadataVersionCheck);
|
settings.switchFlag(AnalysisFlags.getSkipMetadataVersionCheck(), arguments.skipMetadataVersionCheck);
|
||||||
|
settings.switchFlag(AnalysisFlags.getMultiPlatformDoNotCheckImpl(), arguments.noCheckImpl);
|
||||||
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, settings);
|
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, settings);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.resolve.checkers
|
package org.jetbrains.kotlin.resolve.checkers
|
||||||
|
|
||||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||||
|
import org.jetbrains.kotlin.config.AnalysisFlags
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.descriptors.*
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
@@ -57,7 +58,7 @@ class HeaderImplDeclarationChecker(val moduleToCheck: ModuleDescriptor? = null)
|
|||||||
|
|
||||||
if (descriptor !is MemberDescriptor) return
|
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)) {
|
if (descriptor.isHeader && declaration.hasModifier(KtTokens.HEADER_KEYWORD)) {
|
||||||
checkHeaderDeclarationHasImplementation(declaration, descriptor, diagnosticHolder, checkImpl)
|
checkHeaderDeclarationHasImplementation(declaration, descriptor, diagnosticHolder, checkImpl)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,4 +39,7 @@ private operator fun AnalysisFlag.Companion.provideDelegate(instance: Any?, prop
|
|||||||
object AnalysisFlags {
|
object AnalysisFlags {
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
val skipMetadataVersionCheck by AnalysisFlag
|
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),
|
Coroutines(KOTLIN_1_1, ApiVersion.KOTLIN_1_1, "https://kotlinlang.org/docs/diagnostics/experimental-coroutines", State.ENABLED_WITH_WARNING),
|
||||||
|
|
||||||
MultiPlatformProjects(null, defaultState = State.DISABLED),
|
MultiPlatformProjects(sinceVersion = null, defaultState = State.DISABLED),
|
||||||
MultiPlatformDoNotCheckImpl(null, defaultState = State.DISABLED),
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user