Minor. Parametrize MainFunctionDetector with LanguageVersionSettings

This commit is contained in:
Denis Zharkov
2018-09-07 12:13:55 +03:00
parent bc722f9c5f
commit 38be1f6947
15 changed files with 46 additions and 19 deletions
@@ -42,7 +42,6 @@ import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils;
import java.io.File;
import java.util.*;
import static org.jetbrains.kotlin.config.CommonConfigurationKeysKt.getLanguageVersionSettings;
import static org.jetbrains.kotlin.utils.PathUtil.getKotlinPathsForDistDirectory;
public class JsConfig {
@@ -135,6 +134,11 @@ public class JsConfig {
return getConfiguration().getList(JSConfigurationKeys.FRIEND_PATHS);
}
@NotNull
public LanguageVersionSettings getLanguageVersionSettings() {
return CommonConfigurationKeysKt.getLanguageVersionSettings(configuration);
}
public boolean isAtLeast(@NotNull LanguageVersion expected) {
LanguageVersion actual = CommonConfigurationKeysKt.getLanguageVersionSettings(configuration).getLanguageVersion();
return actual.getMajor() > expected.getMajor() ||
@@ -165,7 +169,10 @@ public class JsConfig {
Set<String> modules = new HashSet<>();
boolean skipMetadataVersionCheck = getLanguageVersionSettings(configuration).getFlag(AnalysisFlag.getSkipMetadataVersionCheck());
boolean skipMetadataVersionCheck =
getLanguageVersionSettings().getFlag(
AnalysisFlag.getSkipMetadataVersionCheck()
);
for (String path : libraries) {
if (librariesToSkip != null && librariesToSkip.contains(path)) continue;
@@ -463,7 +463,7 @@ public final class Translation {
) {
StaticContext staticContext = new StaticContext(trace, config, moduleDescriptor, sourceFilePathResolver);
TranslationContext context = TranslationContext.rootContext(staticContext);
MainFunctionDetector mainFunctionDetector = new MainFunctionDetector(context.bindingContext());
MainFunctionDetector mainFunctionDetector = new MainFunctionDetector(context.bindingContext(), config.getLanguageVersionSettings());
FunctionDescriptor functionDescriptor = mainFunctionDetector.getMainFunction(moduleDescriptor);
if (functionDescriptor == null) {
return null;