Refactor inheritMultifileParts to be a JVM analysis flag

Instead of a JVMConfigurationKeys key. This will allow to use it in a
checker in 'frontend.java'
This commit is contained in:
Alexander Udalov
2019-01-23 13:18:47 +01:00
parent f3758771c9
commit 6b5a16884c
24 changed files with 39 additions and 34 deletions
@@ -21,6 +21,7 @@ const val IGNORE_DATA_FLOW_IN_ASSERT_DIRECTIVE = "IGNORE_DATA_FLOW_IN_ASSERT"
const val JVM_DEFAULT_MODE = "JVM_DEFAULT_MODE"
const val SKIP_METADATA_VERSION_CHECK = "SKIP_METADATA_VERSION_CHECK"
const val ALLOW_RESULT_RETURN_TYPE = "ALLOW_RESULT_RETURN_TYPE"
const val INHERIT_MULTIFILE_PARTS = "INHERIT_MULTIFILE_PARTS"
data class CompilerTestLanguageVersionSettings(
private val initialLanguageFeatures: Map<LanguageFeature, LanguageFeature.State>,
@@ -59,9 +60,11 @@ fun parseLanguageVersionSettings(directiveMap: Map<String, String>): CompilerTes
val enableJvmDefault = directiveMap[JVM_DEFAULT_MODE]?.let { JvmAnalysisFlags.jvmDefaultMode to JvmDefaultMode.fromStringOrNull(it)!! }
val skipMetadataVersionCheck = AnalysisFlags.skipMetadataVersionCheck to directiveMap.containsKey(SKIP_METADATA_VERSION_CHECK)
val allowResultReturnType = AnalysisFlags.allowResultReturnType to directiveMap.containsKey(ALLOW_RESULT_RETURN_TYPE)
val inheritMultifileParts = JvmAnalysisFlags.inheritMultifileParts to directiveMap.containsKey(INHERIT_MULTIFILE_PARTS)
if (apiVersionString == null && languageFeaturesString == null && experimental == null && useExperimental == null &&
!ignoreDataFlowInAssert.second && enableJvmDefault == null && !skipMetadataVersionCheck.second && !allowResultReturnType.second
!ignoreDataFlowInAssert.second && enableJvmDefault == null && !skipMetadataVersionCheck.second && !allowResultReturnType.second &&
!inheritMultifileParts.second
) {
return null
}
@@ -77,7 +80,8 @@ fun parseLanguageVersionSettings(directiveMap: Map<String, String>): CompilerTes
languageFeatures, apiVersion, languageVersion,
mapOf(
*listOfNotNull(
experimental, useExperimental, enableJvmDefault, ignoreDataFlowInAssert, skipMetadataVersionCheck, allowResultReturnType
experimental, useExperimental, enableJvmDefault, ignoreDataFlowInAssert, skipMetadataVersionCheck, allowResultReturnType,
inheritMultifileParts
).toTypedArray()
)
)
@@ -207,17 +207,17 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
}
}
if (explicitLanguageVersionSettings != null) {
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, explicitLanguageVersionSettings);
}
else if (disableReleaseCoroutines) {
CompilerTestLanguageVersionSettings compilerLanguageVersionSettings = new CompilerTestLanguageVersionSettings(
if (disableReleaseCoroutines) {
explicitLanguageVersionSettings = new CompilerTestLanguageVersionSettings(
Collections.singletonMap(LanguageFeature.ReleaseCoroutines, LanguageFeature.State.DISABLED),
ApiVersion.LATEST_STABLE,
LanguageVersion.LATEST_STABLE,
Collections.emptyMap()
);
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, compilerLanguageVersionSettings);
}
if (explicitLanguageVersionSettings != null) {
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, explicitLanguageVersionSettings);
}
updateConfigurationWithFlags(configuration, kotlinConfigurationFlags);