Disable New Inference in JS backend
See #KT-37163 for details
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.cli.js
|
||||
|
||||
import org.jetbrains.kotlin.config.*
|
||||
|
||||
class JSLanguageVersionSettings(private val delegate: LanguageVersionSettings) : LanguageVersionSettings {
|
||||
companion object {
|
||||
private val disabledFeatures = setOf(
|
||||
LanguageFeature.NewInference,
|
||||
LanguageFeature.FunctionalInterfaceConversion,
|
||||
LanguageFeature.SamConversionForKotlinFunctions,
|
||||
LanguageFeature.SamConversionPerArgument,
|
||||
LanguageFeature.FunctionReferenceWithDefaultValueAsOtherType,
|
||||
LanguageFeature.NonStrictOnlyInputTypesChecks
|
||||
)
|
||||
}
|
||||
|
||||
override fun getFeatureSupport(feature: LanguageFeature): LanguageFeature.State {
|
||||
return if (feature in disabledFeatures)
|
||||
LanguageFeature.State.DISABLED
|
||||
else
|
||||
delegate.getFeatureSupport(feature)
|
||||
}
|
||||
|
||||
override fun isPreRelease(): Boolean = delegate.isPreRelease()
|
||||
|
||||
override fun <T> getFlag(flag: AnalysisFlag<T>): T = delegate.getFlag(flag)
|
||||
|
||||
override val apiVersion: ApiVersion
|
||||
get() = delegate.apiVersion
|
||||
|
||||
override val languageVersion: LanguageVersion
|
||||
get() = delegate.languageVersion
|
||||
}
|
||||
@@ -246,6 +246,13 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
|
||||
|
||||
configuration.put(CommonConfigurationKeys.MODULE_NAME, FileUtil.getNameWithoutExtension(outputFile));
|
||||
|
||||
if (!arguments.getNewInference()) {
|
||||
CommonConfigurationKeysKt.setLanguageVersionSettings(
|
||||
configuration,
|
||||
new JSLanguageVersionSettings(CommonConfigurationKeysKt.getLanguageVersionSettings(configuration))
|
||||
);
|
||||
}
|
||||
|
||||
JsConfig config = new JsConfig(project, configuration);
|
||||
JsConfig.Reporter reporter = new JsConfig.Reporter() {
|
||||
@Override
|
||||
|
||||
@@ -24,10 +24,7 @@ import org.jetbrains.kotlin.cli.common.messages.MessageUtil
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
|
||||
import org.jetbrains.kotlin.cli.jvm.plugins.PluginCliParser
|
||||
import org.jetbrains.kotlin.config.CommonConfigurationKeys
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.IncrementalCompilation
|
||||
import org.jetbrains.kotlin.config.Services
|
||||
import org.jetbrains.kotlin.config.*
|
||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
||||
import org.jetbrains.kotlin.incremental.components.LookupTracker
|
||||
import org.jetbrains.kotlin.incremental.js.IncrementalDataProvider
|
||||
|
||||
Reference in New Issue
Block a user