Add extension CompilerConfiguration.languageVersionSettings for convenience
This commit is contained in:
@@ -166,7 +166,7 @@ class GenerationState @JvmOverloads constructor(
|
|||||||
|
|
||||||
val generateParametersMetadata: Boolean = configuration.getBoolean(JVMConfigurationKeys.PARAMETERS_METADATA)
|
val generateParametersMetadata: Boolean = configuration.getBoolean(JVMConfigurationKeys.PARAMETERS_METADATA)
|
||||||
|
|
||||||
val languageVersionSettings = configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT)
|
val languageVersionSettings = configuration.languageVersionSettings
|
||||||
val shouldInlineConstVals = languageVersionSettings.supportsFeature(LanguageFeature.InlineConstVals)
|
val shouldInlineConstVals = languageVersionSettings.supportsFeature(LanguageFeature.InlineConstVals)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
|||||||
@@ -22,10 +22,7 @@ import com.intellij.openapi.util.Disposer;
|
|||||||
import com.intellij.openapi.util.SystemInfo;
|
import com.intellij.openapi.util.SystemInfo;
|
||||||
import com.intellij.util.concurrency.AppExecutorUtil;
|
import com.intellij.util.concurrency.AppExecutorUtil;
|
||||||
import com.intellij.util.concurrency.AppScheduledExecutorService;
|
import com.intellij.util.concurrency.AppScheduledExecutorService;
|
||||||
import com.sampullara.cli.Args;
|
|
||||||
import kotlin.Pair;
|
|
||||||
import kotlin.collections.ArraysKt;
|
import kotlin.collections.ArraysKt;
|
||||||
import kotlin.collections.CollectionsKt;
|
|
||||||
import kotlin.jvm.functions.Function1;
|
import kotlin.jvm.functions.Function1;
|
||||||
import org.fusesource.jansi.AnsiConsole;
|
import org.fusesource.jansi.AnsiConsole;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
@@ -44,7 +41,6 @@ import org.jetbrains.kotlin.utils.StringsKt;
|
|||||||
|
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
|
|
||||||
@@ -279,8 +275,8 @@ public abstract class CLICompiler<A extends CommonCompilerArguments> {
|
|||||||
extraLanguageFeatures.add(coroutinesApplicabilityLevel);
|
extraLanguageFeatures.add(coroutinesApplicabilityLevel);
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration.put(
|
CommonConfigurationKeysKt.setLanguageVersionSettings(
|
||||||
CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS,
|
configuration,
|
||||||
new LanguageVersionSettingsImpl(
|
new LanguageVersionSettingsImpl(
|
||||||
languageVersion,
|
languageVersion,
|
||||||
ApiVersion.createByLanguageVersion(apiVersion),
|
ApiVersion.createByLanguageVersion(apiVersion),
|
||||||
|
|||||||
+22
-49
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.cli.jvm
|
|||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.openapi.vfs.VfsUtilCore
|
import com.intellij.openapi.vfs.VfsUtilCore
|
||||||
import com.intellij.openapi.vfs.VirtualFile
|
import com.intellij.openapi.vfs.VirtualFile
|
||||||
import org.jetbrains.kotlin.cli.common.CLICompiler
|
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
import org.jetbrains.kotlin.cli.common.messages.MessageCollector
|
||||||
@@ -32,19 +31,16 @@ import java.util.jar.Manifest
|
|||||||
object JvmRuntimeVersionsConsistencyChecker {
|
object JvmRuntimeVersionsConsistencyChecker {
|
||||||
private val LOG = Logger.getInstance(JvmRuntimeVersionsConsistencyChecker::class.java)
|
private val LOG = Logger.getInstance(JvmRuntimeVersionsConsistencyChecker::class.java)
|
||||||
|
|
||||||
private fun fatal(message: String): Nothing {
|
private fun <T> T?.assertNotNull(lazyMessage: () -> String): T =
|
||||||
LOG.error(message)
|
this ?: lazyMessage().let { message ->
|
||||||
throw AssertionError(message)
|
LOG.error(message)
|
||||||
}
|
throw AssertionError(message)
|
||||||
|
}
|
||||||
private fun <T> T?.assertNotNull(message: () -> String): T =
|
|
||||||
if (this == null) fatal(message()) else this
|
|
||||||
|
|
||||||
private const val META_INF = "META-INF"
|
private const val META_INF = "META-INF"
|
||||||
private const val MANIFEST_MF = "$META_INF/MANIFEST.MF"
|
private const val MANIFEST_MF = "$META_INF/MANIFEST.MF"
|
||||||
|
|
||||||
private const val MANIFEST_KOTLIN_VERSION_ATTRIBUTE = "manifest.impl.attribute.kotlin.version"
|
private const val MANIFEST_KOTLIN_VERSION_ATTRIBUTE = "manifest.impl.attribute.kotlin.version"
|
||||||
private const val MANIFEST_KOTLIN_VERSION_VALUE = "manifest.impl.value.kotlin.version"
|
|
||||||
private const val MANIFEST_KOTLIN_RUNTIME_COMPONENT = "manifest.impl.attribute.kotlin.runtime.component"
|
private const val MANIFEST_KOTLIN_RUNTIME_COMPONENT = "manifest.impl.attribute.kotlin.runtime.component"
|
||||||
private const val MANIFEST_KOTLIN_RUNTIME_COMPONENT_CORE = "manifest.impl.value.kotlin.runtime.component.core"
|
private const val MANIFEST_KOTLIN_RUNTIME_COMPONENT_CORE = "manifest.impl.value.kotlin.runtime.component.core"
|
||||||
private const val MANIFEST_KOTLIN_RUNTIME_COMPONENT_MAIN = "manifest.impl.value.kotlin.runtime.component.main"
|
private const val MANIFEST_KOTLIN_RUNTIME_COMPONENT_MAIN = "manifest.impl.value.kotlin.runtime.component.main"
|
||||||
@@ -57,8 +53,6 @@ object JvmRuntimeVersionsConsistencyChecker {
|
|||||||
)
|
)
|
||||||
|
|
||||||
private val KOTLIN_VERSION_ATTRIBUTE: String
|
private val KOTLIN_VERSION_ATTRIBUTE: String
|
||||||
private val CURRENT_COMPILER_VERSION: MavenComparableVersion
|
|
||||||
|
|
||||||
private val KOTLIN_RUNTIME_COMPONENT_ATTRIBUTE: String
|
private val KOTLIN_RUNTIME_COMPONENT_ATTRIBUTE: String
|
||||||
private val KOTLIN_RUNTIME_COMPONENT_CORE: String
|
private val KOTLIN_RUNTIME_COMPONENT_CORE: String
|
||||||
private val KOTLIN_RUNTIME_COMPONENT_MAIN: String
|
private val KOTLIN_RUNTIME_COMPONENT_MAIN: String
|
||||||
@@ -76,18 +70,6 @@ object JvmRuntimeVersionsConsistencyChecker {
|
|||||||
|
|
||||||
KOTLIN_VERSION_ATTRIBUTE = manifestProperties.getProperty(MANIFEST_KOTLIN_VERSION_ATTRIBUTE)
|
KOTLIN_VERSION_ATTRIBUTE = manifestProperties.getProperty(MANIFEST_KOTLIN_VERSION_ATTRIBUTE)
|
||||||
.assertNotNull { "$MANIFEST_KOTLIN_VERSION_ATTRIBUTE not found in kotlinManifest.properties" }
|
.assertNotNull { "$MANIFEST_KOTLIN_VERSION_ATTRIBUTE not found in kotlinManifest.properties" }
|
||||||
|
|
||||||
CURRENT_COMPILER_VERSION = run {
|
|
||||||
val kotlinVersionString = manifestProperties.getProperty(MANIFEST_KOTLIN_VERSION_VALUE)
|
|
||||||
.assertNotNull { "$MANIFEST_KOTLIN_VERSION_VALUE not found in kotlinManifest.properties" }
|
|
||||||
|
|
||||||
MavenComparableVersion(kotlinVersionString)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (CURRENT_COMPILER_VERSION != ApiVersion.LATEST.version) {
|
|
||||||
fatal("Kotlin compiler version $CURRENT_COMPILER_VERSION in kotlinManifest.properties doesn't match ${ApiVersion.LATEST}")
|
|
||||||
}
|
|
||||||
|
|
||||||
KOTLIN_RUNTIME_COMPONENT_ATTRIBUTE = manifestProperties.getProperty(MANIFEST_KOTLIN_RUNTIME_COMPONENT)
|
KOTLIN_RUNTIME_COMPONENT_ATTRIBUTE = manifestProperties.getProperty(MANIFEST_KOTLIN_RUNTIME_COMPONENT)
|
||||||
.assertNotNull { "$MANIFEST_KOTLIN_RUNTIME_COMPONENT not found in kotlinManifest.properties" }
|
.assertNotNull { "$MANIFEST_KOTLIN_RUNTIME_COMPONENT not found in kotlinManifest.properties" }
|
||||||
KOTLIN_RUNTIME_COMPONENT_CORE = manifestProperties.getProperty(MANIFEST_KOTLIN_RUNTIME_COMPONENT_CORE)
|
KOTLIN_RUNTIME_COMPONENT_CORE = manifestProperties.getProperty(MANIFEST_KOTLIN_RUNTIME_COMPONENT_CORE)
|
||||||
@@ -118,8 +100,8 @@ object JvmRuntimeVersionsConsistencyChecker {
|
|||||||
val runtimeJarsInfo = collectRuntimeJarsInfo(classpathJarRoots)
|
val runtimeJarsInfo = collectRuntimeJarsInfo(classpathJarRoots)
|
||||||
if (runtimeJarsInfo.jars.isEmpty()) return
|
if (runtimeJarsInfo.jars.isEmpty()) return
|
||||||
|
|
||||||
val languageVersionSettings = configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS)
|
val languageVersionSettings = configuration.languageVersionSettings
|
||||||
val apiVersion = languageVersionSettings?.apiVersion?.version ?: CURRENT_COMPILER_VERSION
|
val apiVersion = languageVersionSettings.apiVersion.version
|
||||||
|
|
||||||
val consistency = checkCompilerClasspathConsistency(messageCollector, apiVersion, runtimeJarsInfo)
|
val consistency = checkCompilerClasspathConsistency(messageCollector, apiVersion, runtimeJarsInfo)
|
||||||
if (consistency is ClasspathConsistency.InconsistentWithApiVersion) {
|
if (consistency is ClasspathConsistency.InconsistentWithApiVersion) {
|
||||||
@@ -137,29 +119,20 @@ object JvmRuntimeVersionsConsistencyChecker {
|
|||||||
|
|
||||||
val actualApi = ApiVersion.parse(actualRuntimeVersion.toString())
|
val actualApi = ApiVersion.parse(actualRuntimeVersion.toString())
|
||||||
if (actualApi != null) {
|
if (actualApi != null) {
|
||||||
val newSettings = if (languageVersionSettings == null) {
|
val inferredApiVersion =
|
||||||
LanguageVersionSettingsImpl(
|
if (@Suppress("DEPRECATION") languageVersionSettings.isApiVersionExplicit)
|
||||||
LanguageVersionSettingsImpl.DEFAULT.languageVersion,
|
languageVersionSettings.apiVersion
|
||||||
actualApi,
|
else
|
||||||
listOf(LanguageFeature.WarnOnCoroutines)
|
minOf(languageVersionSettings.apiVersion, actualApi)
|
||||||
)
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
val inferredApiVersion =
|
|
||||||
if (@Suppress("DEPRECATION") languageVersionSettings.isApiVersionExplicit)
|
|
||||||
languageVersionSettings.apiVersion
|
|
||||||
else
|
|
||||||
minOf(languageVersionSettings.apiVersion, actualApi)
|
|
||||||
|
|
||||||
// "minOf" is needed in case when API version was inferred from language version and it's older than actualApi.
|
// "minOf" is needed in case when API version was inferred from language version and it's older than actualApi.
|
||||||
// For example, in "kotlinc-1.2 -language-version 1.0 -cp kotlin-runtime-1.1.jar" we should still infer API = 1.0
|
// For example, in "kotlinc-1.2 -language-version 1.0 -cp kotlin-runtime-1.1.jar" we should still infer API = 1.0
|
||||||
LanguageVersionSettingsImpl(
|
val newSettings = LanguageVersionSettingsImpl(
|
||||||
languageVersionSettings.languageVersion,
|
languageVersionSettings.languageVersion,
|
||||||
inferredApiVersion,
|
inferredApiVersion,
|
||||||
languageVersionSettings.additionalFeatures,
|
languageVersionSettings.additionalFeatures,
|
||||||
isApiVersionExplicit = false
|
isApiVersionExplicit = false
|
||||||
)
|
)
|
||||||
}
|
|
||||||
|
|
||||||
messageCollector.issue(null, "Old runtime has been found in the classpath. " +
|
messageCollector.issue(null, "Old runtime has been found in the classpath. " +
|
||||||
"Initial language version settings: $languageVersionSettings. " +
|
"Initial language version settings: $languageVersionSettings. " +
|
||||||
@@ -228,10 +201,10 @@ object JvmRuntimeVersionsConsistencyChecker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkNotNewerThanCompiler(messageCollector: MessageCollector, jar: KotlinLibraryFile): Boolean {
|
private fun checkNotNewerThanCompiler(messageCollector: MessageCollector, jar: KotlinLibraryFile): Boolean {
|
||||||
if (jar.version > CURRENT_COMPILER_VERSION) {
|
if (jar.version > ApiVersion.LATEST.version) {
|
||||||
messageCollector.issue(
|
messageCollector.issue(
|
||||||
jar.file,
|
jar.file,
|
||||||
"Runtime JAR file has version ${jar.version} which is newer than compiler version $CURRENT_COMPILER_VERSION",
|
"Runtime JAR file has version ${jar.version} which is newer than compiler version ${ApiVersion.LATEST.version}",
|
||||||
CompilerMessageSeverity.ERROR
|
CompilerMessageSeverity.ERROR
|
||||||
)
|
)
|
||||||
return true
|
return true
|
||||||
|
|||||||
@@ -67,7 +67,8 @@ import org.jetbrains.kotlin.cli.common.CliModuleVisibilityManagerImpl
|
|||||||
import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY
|
import org.jetbrains.kotlin.cli.common.KOTLIN_COMPILER_ENVIRONMENT_KEEPALIVE_PROPERTY
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.*
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.ERROR
|
||||||
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity.STRONG_WARNING
|
||||||
import org.jetbrains.kotlin.cli.common.toBooleanLenient
|
import org.jetbrains.kotlin.cli.common.toBooleanLenient
|
||||||
import org.jetbrains.kotlin.cli.jvm.JvmRuntimeVersionsConsistencyChecker
|
import org.jetbrains.kotlin.cli.jvm.JvmRuntimeVersionsConsistencyChecker
|
||||||
import org.jetbrains.kotlin.cli.jvm.config.JavaSourceRoot
|
import org.jetbrains.kotlin.cli.jvm.config.JavaSourceRoot
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ package org.jetbrains.kotlin.resolve.jvm
|
|||||||
import com.intellij.openapi.diagnostic.Logger
|
import com.intellij.openapi.diagnostic.Logger
|
||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import org.jetbrains.kotlin.analyzer.*
|
import org.jetbrains.kotlin.analyzer.*
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||||
import org.jetbrains.kotlin.config.JvmTarget
|
import org.jetbrains.kotlin.config.JvmTarget
|
||||||
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.context.ModuleContext
|
import org.jetbrains.kotlin.context.ModuleContext
|
||||||
import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
||||||
@@ -84,7 +84,7 @@ object JvmAnalyzerFacade : AnalyzerFacade<JvmPlatformParameters>() {
|
|||||||
|
|
||||||
val configuration = CompilerConfiguration().apply {
|
val configuration = CompilerConfiguration().apply {
|
||||||
val languageSettingsProvider = LanguageSettingsProvider.getInstance(project)
|
val languageSettingsProvider = LanguageSettingsProvider.getInstance(project)
|
||||||
put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project))
|
languageVersionSettings = languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project)
|
||||||
|
|
||||||
val platform = languageSettingsProvider.getTargetPlatform(moduleInfo)
|
val platform = languageSettingsProvider.getTargetPlatform(moduleInfo)
|
||||||
if (platform is JvmTarget) {
|
if (platform is JvmTarget) {
|
||||||
|
|||||||
+3
-7
@@ -24,10 +24,9 @@ import com.intellij.psi.search.GlobalSearchScope
|
|||||||
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
import org.jetbrains.kotlin.analyzer.AnalysisResult
|
||||||
import org.jetbrains.kotlin.builtins.JvmBuiltInsPackageFragmentProvider
|
import org.jetbrains.kotlin.builtins.JvmBuiltInsPackageFragmentProvider
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS
|
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.container.ComponentProvider
|
import org.jetbrains.kotlin.container.ComponentProvider
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.context.ContextForNewModule
|
import org.jetbrains.kotlin.context.ContextForNewModule
|
||||||
@@ -136,13 +135,10 @@ object TopDownAnalyzerFacadeForJVM {
|
|||||||
val sourceScope = if (separateModules) sourceModuleSearchScope else GlobalSearchScope.allScope(project)
|
val sourceScope = if (separateModules) sourceModuleSearchScope else GlobalSearchScope.allScope(project)
|
||||||
val moduleClassResolver = SourceOrBinaryModuleClassResolver(sourceScope)
|
val moduleClassResolver = SourceOrBinaryModuleClassResolver(sourceScope)
|
||||||
|
|
||||||
val languageVersionSettings =
|
|
||||||
configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT)
|
|
||||||
|
|
||||||
val optionalBuiltInsModule =
|
val optionalBuiltInsModule =
|
||||||
if (configuration.getBoolean(JVMConfigurationKeys.ADD_BUILT_INS_FROM_COMPILER_TO_DEPENDENCIES)) {
|
if (configuration.getBoolean(JVMConfigurationKeys.ADD_BUILT_INS_FROM_COMPILER_TO_DEPENDENCIES)) {
|
||||||
if (createBuiltInsFromModule)
|
if (createBuiltInsFromModule)
|
||||||
JvmBuiltIns(storageManager).apply { initialize(module, languageVersionSettings) }.builtInsModule
|
JvmBuiltIns(storageManager).apply { initialize(module, configuration.languageVersionSettings) }.builtInsModule
|
||||||
else module.builtIns.builtInsModule
|
else module.builtIns.builtInsModule
|
||||||
}
|
}
|
||||||
else null
|
else null
|
||||||
@@ -258,7 +254,7 @@ object TopDownAnalyzerFacadeForJVM {
|
|||||||
fun createContextWithSealedModule(project: Project, configuration: CompilerConfiguration): MutableModuleContext =
|
fun createContextWithSealedModule(project: Project, configuration: CompilerConfiguration): MutableModuleContext =
|
||||||
createModuleContext(project, configuration, false).apply {
|
createModuleContext(project, configuration, false).apply {
|
||||||
setDependencies(module, module.builtIns.builtInsModule)
|
setDependencies(module, module.builtIns.builtInsModule)
|
||||||
(module.builtIns as JvmBuiltIns).initialize(module, configuration.get(LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT))
|
(module.builtIns as JvmBuiltIns).initialize(module, configuration.languageVersionSettings)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createModuleContext(
|
private fun createModuleContext(
|
||||||
|
|||||||
@@ -50,9 +50,9 @@ import org.jetbrains.kotlin.serialization.deserialization.MetadataPackageFragmen
|
|||||||
*/
|
*/
|
||||||
object DefaultAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
|
object DefaultAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
|
||||||
private val compilerConfiguration = CompilerConfiguration().apply {
|
private val compilerConfiguration = CompilerConfiguration().apply {
|
||||||
put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl(
|
languageVersionSettings = LanguageVersionSettingsImpl(
|
||||||
LanguageVersion.LATEST, ApiVersion.LATEST, setOf(LanguageFeature.MultiPlatformProjects)
|
LanguageVersion.LATEST, ApiVersion.LATEST, setOf(LanguageFeature.MultiPlatformProjects)
|
||||||
))
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private class SourceModuleInfo(
|
private class SourceModuleInfo(
|
||||||
|
|||||||
@@ -29,3 +29,7 @@ object CommonConfigurationKeys {
|
|||||||
@JvmField
|
@JvmField
|
||||||
val MODULE_NAME = CompilerConfigurationKey<String>("module name")
|
val MODULE_NAME = CompilerConfigurationKey<String>("module name")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var CompilerConfiguration.languageVersionSettings: LanguageVersionSettings
|
||||||
|
get() = get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT)
|
||||||
|
set(value) = put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, value)
|
||||||
|
|||||||
@@ -16,9 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.frontend.di
|
package org.jetbrains.kotlin.frontend.di
|
||||||
|
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.container.StorageComponentContainer
|
import org.jetbrains.kotlin.container.StorageComponentContainer
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.container.useImpl
|
import org.jetbrains.kotlin.container.useImpl
|
||||||
@@ -69,7 +68,7 @@ fun StorageComponentContainer.configureModule(
|
|||||||
|
|
||||||
fun StorageComponentContainer.configureCommon(configuration: CompilerConfiguration) {
|
fun StorageComponentContainer.configureCommon(configuration: CompilerConfiguration) {
|
||||||
useInstance(configuration)
|
useInstance(configuration)
|
||||||
useInstance(configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT))
|
useInstance(configuration.languageVersionSettings)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun createContainerForBodyResolve(
|
fun createContainerForBodyResolve(
|
||||||
|
|||||||
+2
-5
@@ -19,14 +19,11 @@ package org.jetbrains.kotlin.resolve
|
|||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.LanguageFeature
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfiguration
|
import org.jetbrains.kotlin.serialization.deserialization.DeserializationConfiguration
|
||||||
|
|
||||||
class CompilerDeserializationConfiguration(configuration: CompilerConfiguration) : DeserializationConfiguration {
|
class CompilerDeserializationConfiguration(configuration: CompilerConfiguration) : DeserializationConfiguration {
|
||||||
private val languageVersionSettings =
|
override val typeAliasesAllowed = configuration.languageVersionSettings.supportsFeature(LanguageFeature.TypeAliases)
|
||||||
configuration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT)
|
|
||||||
|
|
||||||
override val typeAliasesAllowed = languageVersionSettings.supportsFeature(LanguageFeature.TypeAliases)
|
|
||||||
|
|
||||||
override val skipMetadataVersionCheck = configuration.getBoolean(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK)
|
override val skipMetadataVersionCheck = configuration.getBoolean(CommonConfigurationKeys.SKIP_METADATA_VERSION_CHECK)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -18,10 +18,9 @@ package org.jetbrains.kotlin.types.expressions
|
|||||||
|
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.util.PsiTreeUtil
|
import com.intellij.psi.util.PsiTreeUtil
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.context.GlobalContext
|
import org.jetbrains.kotlin.context.GlobalContext
|
||||||
import org.jetbrains.kotlin.context.withModule
|
import org.jetbrains.kotlin.context.withModule
|
||||||
@@ -94,7 +93,7 @@ class LocalClassifierAnalyzer(
|
|||||||
typeResolver,
|
typeResolver,
|
||||||
annotationResolver,
|
annotationResolver,
|
||||||
supertypeLoopChecker,
|
supertypeLoopChecker,
|
||||||
compilerConfiguration.get(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl.DEFAULT),
|
compilerConfiguration.languageVersionSettings,
|
||||||
SyntheticResolveExtension.getInstance(project),
|
SyntheticResolveExtension.getInstance(project),
|
||||||
delegationFilter
|
delegationFilter
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -24,8 +24,8 @@ import org.jetbrains.kotlin.analyzer.AnalysisResult
|
|||||||
import org.jetbrains.kotlin.analyzer.common.DefaultAnalyzerFacade
|
import org.jetbrains.kotlin.analyzer.common.DefaultAnalyzerFacade
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport
|
import org.jetbrains.kotlin.cli.jvm.compiler.CliLightClassGenerationSupport
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider
|
import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS
|
|
||||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.context.ModuleContext
|
import org.jetbrains.kotlin.context.ModuleContext
|
||||||
import org.jetbrains.kotlin.context.SimpleGlobalContext
|
import org.jetbrains.kotlin.context.SimpleGlobalContext
|
||||||
@@ -261,7 +261,9 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() {
|
|||||||
|
|
||||||
val configuration =
|
val configuration =
|
||||||
if (languageVersionSettings != null)
|
if (languageVersionSettings != null)
|
||||||
environment.configuration.copy().apply { put(LANGUAGE_VERSION_SETTINGS, languageVersionSettings) }
|
environment.configuration.copy().apply {
|
||||||
|
this.languageVersionSettings = languageVersionSettings
|
||||||
|
}
|
||||||
else
|
else
|
||||||
environment.configuration
|
environment.configuration
|
||||||
|
|
||||||
|
|||||||
@@ -164,8 +164,10 @@ public abstract class CodegenTestCase extends KtUsefulTestCase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (explicitLanguageVersion != null) {
|
if (explicitLanguageVersion != null) {
|
||||||
configuration.put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS,
|
CommonConfigurationKeysKt.setLanguageVersionSettings(
|
||||||
new LanguageVersionSettingsImpl(explicitLanguageVersion, ApiVersion.createByLanguageVersion(explicitLanguageVersion)));
|
configuration,
|
||||||
|
new LanguageVersionSettingsImpl(explicitLanguageVersion, ApiVersion.createByLanguageVersion(explicitLanguageVersion))
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
updateConfigurationWithFlags(configuration, kotlinConfigurationFlags);
|
updateConfigurationWithFlags(configuration, kotlinConfigurationFlags);
|
||||||
|
|||||||
@@ -20,10 +20,8 @@ import com.intellij.openapi.roots.OrderRootType
|
|||||||
import com.intellij.psi.search.GlobalSearchScope
|
import com.intellij.psi.search.GlobalSearchScope
|
||||||
import com.intellij.util.PathUtil
|
import com.intellij.util.PathUtil
|
||||||
import org.jetbrains.kotlin.analyzer.*
|
import org.jetbrains.kotlin.analyzer.*
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.config.JvmTarget
|
|
||||||
import org.jetbrains.kotlin.container.get
|
import org.jetbrains.kotlin.container.get
|
||||||
import org.jetbrains.kotlin.context.ModuleContext
|
import org.jetbrains.kotlin.context.ModuleContext
|
||||||
import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
import org.jetbrains.kotlin.descriptors.PackagePartProvider
|
||||||
@@ -61,8 +59,7 @@ object JsAnalyzerFacade : AnalyzerFacade<PlatformAnalysisParameters>() {
|
|||||||
|
|
||||||
// TODO: deduplicate this with JvmAnalyzerFacade
|
// TODO: deduplicate this with JvmAnalyzerFacade
|
||||||
val configuration = CompilerConfiguration().apply {
|
val configuration = CompilerConfiguration().apply {
|
||||||
val languageSettingsProvider = LanguageSettingsProvider.getInstance(project)
|
languageVersionSettings = LanguageSettingsProvider.getInstance(project).getLanguageVersionSettings(moduleInfo, project)
|
||||||
put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, languageSettingsProvider.getLanguageVersionSettings(moduleInfo, project))
|
|
||||||
isReadOnly = true
|
isReadOnly = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ private fun getExtraLanguageFeatures(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun KtElement.createCompilerConfiguration(): CompilerConfiguration = CompilerConfiguration().apply {
|
fun KtElement.createCompilerConfiguration(): CompilerConfiguration = CompilerConfiguration().apply {
|
||||||
put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, languageVersionSettings)
|
languageVersionSettings = this@createCompilerConfiguration.languageVersionSettings
|
||||||
isReadOnly = true
|
isReadOnly = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -134,8 +134,7 @@ public class KotlinBytecodeToolWindow extends JPanel implements Disposable {
|
|||||||
configuration.put(JVMConfigurationKeys.IR, true);
|
configuration.put(JVMConfigurationKeys.IR, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
LanguageVersionSettings languageVersionSettings = PlatformKt.getLanguageVersionSettings(ktFile);
|
CommonConfigurationKeysKt.setLanguageVersionSettings(configuration, PlatformKt.getLanguageVersionSettings(ktFile));
|
||||||
configuration.put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, languageVersionSettings);
|
|
||||||
|
|
||||||
return getBytecodeForFile(ktFile, configuration);
|
return getBytecodeForFile(ktFile, configuration);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,8 +25,8 @@ import org.jetbrains.java.decompiler.main.decompiler.BaseDecompiler
|
|||||||
import org.jetbrains.java.decompiler.main.extern.IBytecodeProvider
|
import org.jetbrains.java.decompiler.main.extern.IBytecodeProvider
|
||||||
import org.jetbrains.java.decompiler.main.extern.IFernflowerPreferences
|
import org.jetbrains.java.decompiler.main.extern.IFernflowerPreferences
|
||||||
import org.jetbrains.java.decompiler.main.extern.IResultSaver
|
import org.jetbrains.java.decompiler.main.extern.IResultSaver
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.actions.canBeDecompiledToJava
|
import org.jetbrains.kotlin.idea.actions.canBeDecompiledToJava
|
||||||
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -47,7 +47,7 @@ class KotlinDecompilerServiceImpl : KotlinDecompilerService {
|
|||||||
)
|
)
|
||||||
|
|
||||||
val bytecodeProvider = IBytecodeProvider {
|
val bytecodeProvider = IBytecodeProvider {
|
||||||
externalPath, internalPath ->
|
externalPath, _ ->
|
||||||
val path = File(FileUtil.toSystemIndependentName(externalPath))
|
val path = File(FileUtil.toSystemIndependentName(externalPath))
|
||||||
bytecodeMap[path]?.invoke()
|
bytecodeMap[path]?.invoke()
|
||||||
}
|
}
|
||||||
@@ -75,7 +75,7 @@ class KotlinDecompilerServiceImpl : KotlinDecompilerService {
|
|||||||
|
|
||||||
fun bytecodeMapForSourceFile(file: KtFile): Map<File, () -> ByteArray> {
|
fun bytecodeMapForSourceFile(file: KtFile): Map<File, () -> ByteArray> {
|
||||||
val configuration = CompilerConfiguration().apply {
|
val configuration = CompilerConfiguration().apply {
|
||||||
put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, file.languageVersionSettings)
|
languageVersionSettings = file.languageVersionSettings
|
||||||
}
|
}
|
||||||
val generationState = KotlinBytecodeToolWindow.compileSingleFile(file, configuration)
|
val generationState = KotlinBytecodeToolWindow.compileSingleFile(file, configuration)
|
||||||
|
|
||||||
|
|||||||
+4
-2
@@ -68,8 +68,10 @@ public abstract class AbstractDiagnosticMessageJsTest extends AbstractDiagnostic
|
|||||||
configuration.put(CommonConfigurationKeys.DISABLE_INLINE, true);
|
configuration.put(CommonConfigurationKeys.DISABLE_INLINE, true);
|
||||||
configuration.put(JSConfigurationKeys.UNIT_TEST_CONFIG, true);
|
configuration.put(JSConfigurationKeys.UNIT_TEST_CONFIG, true);
|
||||||
if (explicitLanguageVersion != null) {
|
if (explicitLanguageVersion != null) {
|
||||||
configuration.put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS,
|
CommonConfigurationKeysKt.setLanguageVersionSettings(
|
||||||
new LanguageVersionSettingsImpl(explicitLanguageVersion, ApiVersion.LATEST));
|
configuration,
|
||||||
|
new LanguageVersionSettingsImpl(explicitLanguageVersion, LanguageVersionSettingsImpl.DEFAULT.getApiVersion())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return new LibrarySourcesConfig(getProject(), configuration);
|
return new LibrarySourcesConfig(getProject(), configuration);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,10 @@ import org.jetbrains.annotations.NotNull;
|
|||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.kotlin.analyzer.AnalysisResult;
|
import org.jetbrains.kotlin.analyzer.AnalysisResult;
|
||||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
|
||||||
import org.jetbrains.kotlin.config.*;
|
import org.jetbrains.kotlin.config.CommonConfigurationKeysKt;
|
||||||
|
import org.jetbrains.kotlin.config.CompilerConfiguration;
|
||||||
|
import org.jetbrains.kotlin.config.LanguageVersion;
|
||||||
|
import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl;
|
||||||
import org.jetbrains.kotlin.diagnostics.Diagnostic;
|
import org.jetbrains.kotlin.diagnostics.Diagnostic;
|
||||||
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory;
|
import org.jetbrains.kotlin.diagnostics.DiagnosticFactory;
|
||||||
import org.jetbrains.kotlin.diagnostics.Errors;
|
import org.jetbrains.kotlin.diagnostics.Errors;
|
||||||
@@ -79,8 +82,10 @@ public abstract class AbstractDiagnosticMessageTest extends KotlinTestWithEnviro
|
|||||||
protected AnalysisResult analyze(@NotNull KtFile file, @Nullable LanguageVersion explicitLanguageVersion) {
|
protected AnalysisResult analyze(@NotNull KtFile file, @Nullable LanguageVersion explicitLanguageVersion) {
|
||||||
CompilerConfiguration configuration = getEnvironment().getConfiguration();
|
CompilerConfiguration configuration = getEnvironment().getConfiguration();
|
||||||
if (explicitLanguageVersion != null) {
|
if (explicitLanguageVersion != null) {
|
||||||
configuration.put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS,
|
CommonConfigurationKeysKt.setLanguageVersionSettings(
|
||||||
new LanguageVersionSettingsImpl(explicitLanguageVersion, ApiVersion.LATEST));
|
configuration,
|
||||||
|
new LanguageVersionSettingsImpl(explicitLanguageVersion, LanguageVersionSettingsImpl.DEFAULT.getApiVersion())
|
||||||
|
);
|
||||||
}
|
}
|
||||||
return JvmResolveUtil.analyze(Collections.singleton(file), getEnvironment(), configuration);
|
return JvmResolveUtil.analyze(Collections.singleton(file), getEnvironment(), configuration);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.internal
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||||
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
import org.jetbrains.kotlin.idea.project.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
@@ -34,19 +35,20 @@ abstract class AbstractBytecodeToolWindowTest: KotlinLightCodeInsightFixtureTest
|
|||||||
fun doTest(testPath: String) {
|
fun doTest(testPath: String) {
|
||||||
val mainDir = File(testPath)
|
val mainDir = File(testPath)
|
||||||
val mainFileName = mainDir.name + ".kt"
|
val mainFileName = mainDir.name + ".kt"
|
||||||
mainDir.listFiles { file, name -> name != mainFileName }.forEach { myFixture.configureByFile(testPath + "/" + it.name) }
|
mainDir.listFiles { _, name -> name != mainFileName }.forEach { myFixture.configureByFile(testPath + "/" + it.name) }
|
||||||
|
|
||||||
val mainFileText = File("$testPath/$mainFileName").readText()
|
val mainFileText = File("$testPath/$mainFileName").readText()
|
||||||
myFixture.configureByText(KotlinFileType.INSTANCE, mainFileText)
|
myFixture.configureByText(KotlinFileType.INSTANCE, mainFileText)
|
||||||
|
|
||||||
val file = myFixture.file as KtFile
|
val file = myFixture.file as KtFile
|
||||||
|
|
||||||
val configuration = CompilerConfiguration()
|
val configuration = CompilerConfiguration().apply {
|
||||||
if (InTextDirectivesUtils.getPrefixedBoolean(mainFileText, "// INLINE:") == false) {
|
if (InTextDirectivesUtils.getPrefixedBoolean(mainFileText, "// INLINE:") == false) {
|
||||||
configuration.put(CommonConfigurationKeys.DISABLE_INLINE, true)
|
put(CommonConfigurationKeys.DISABLE_INLINE, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration.put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, file.languageVersionSettings)
|
languageVersionSettings = file.languageVersionSettings
|
||||||
|
}
|
||||||
|
|
||||||
val bytecodes = KotlinBytecodeToolWindow.getBytecodeForFile(file, configuration)
|
val bytecodes = KotlinBytecodeToolWindow.getBytecodeForFile(file, configuration)
|
||||||
assert(bytecodes.contains("// ================")) {
|
assert(bytecodes.contains("// ================")) {
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.js.test
|
package org.jetbrains.kotlin.js.test
|
||||||
|
|
||||||
import org.jetbrains.kotlin.js.backend.ast.JsProgram
|
|
||||||
import com.intellij.openapi.util.io.FileUtil
|
import com.intellij.openapi.util.io.FileUtil
|
||||||
import com.intellij.openapi.util.text.StringUtil
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
import com.intellij.openapi.vfs.StandardFileSystems
|
import com.intellij.openapi.vfs.StandardFileSystems
|
||||||
@@ -31,6 +30,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
|||||||
import org.jetbrains.kotlin.config.*
|
import org.jetbrains.kotlin.config.*
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.js.JavaScript
|
import org.jetbrains.kotlin.js.JavaScript
|
||||||
|
import org.jetbrains.kotlin.js.backend.ast.JsProgram
|
||||||
import org.jetbrains.kotlin.js.config.EcmaVersion
|
import org.jetbrains.kotlin.js.config.EcmaVersion
|
||||||
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
import org.jetbrains.kotlin.js.config.JSConfigurationKeys
|
||||||
import org.jetbrains.kotlin.js.config.JsConfig
|
import org.jetbrains.kotlin.js.config.JsConfig
|
||||||
@@ -255,8 +255,9 @@ abstract class BasicBoxTest(
|
|||||||
val configuration = environment.configuration.copy()
|
val configuration = environment.configuration.copy()
|
||||||
|
|
||||||
configuration.put(CommonConfigurationKeys.DISABLE_INLINE, module.inliningDisabled)
|
configuration.put(CommonConfigurationKeys.DISABLE_INLINE, module.inliningDisabled)
|
||||||
module.languageVersion?.let {
|
module.languageVersion?.let { languageVersion ->
|
||||||
configuration.put(CommonConfigurationKeys.LANGUAGE_VERSION_SETTINGS, LanguageVersionSettingsImpl(it, ApiVersion.LATEST))
|
configuration.languageVersionSettings =
|
||||||
|
LanguageVersionSettingsImpl(languageVersion, LanguageVersionSettingsImpl.DEFAULT.apiVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
configuration.put(JSConfigurationKeys.LIBRARIES, LibrarySourcesConfig.JS_STDLIB + LibrarySourcesConfig.JS_KOTLIN_TEST + dependencies)
|
configuration.put(JSConfigurationKeys.LIBRARIES, LibrarySourcesConfig.JS_STDLIB + LibrarySourcesConfig.JS_KOTLIN_TEST + dependencies)
|
||||||
|
|||||||
Reference in New Issue
Block a user