Rename Config -> JsConfig

This commit is contained in:
Alexander Udalov
2016-05-23 18:26:32 +03:00
parent 2bd3211ba8
commit 116e4a5ced
12 changed files with 59 additions and 53 deletions
@@ -47,8 +47,8 @@ import org.jetbrains.kotlin.config.ContentRootsKt;
import org.jetbrains.kotlin.config.Services; import org.jetbrains.kotlin.config.Services;
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS; import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS;
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult; import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult;
import org.jetbrains.kotlin.js.config.Config;
import org.jetbrains.kotlin.js.config.EcmaVersion; import org.jetbrains.kotlin.js.config.EcmaVersion;
import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig;
import org.jetbrains.kotlin.js.facade.K2JSTranslator; import org.jetbrains.kotlin.js.facade.K2JSTranslator;
import org.jetbrains.kotlin.js.facade.MainCallParameters; import org.jetbrains.kotlin.js.facade.MainCallParameters;
@@ -119,7 +119,7 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
File outputFile = new File(arguments.outputFile); File outputFile = new File(arguments.outputFile);
Config config = getConfig(arguments, project); JsConfig config = getConfig(arguments, project);
if (config.checkLibFilesAndReportErrors(new Function1<String, Unit>() { if (config.checkLibFilesAndReportErrors(new Function1<String, Unit>() {
@Override @Override
public Unit invoke(String message) { public Unit invoke(String message) {
@@ -219,8 +219,9 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
CompilerMessageLocation.NO_LOCATION); CompilerMessageLocation.NO_LOCATION);
} }
private static AnalyzerWithCompilerReport analyzeAndReportErrors(@NotNull MessageCollector messageCollector, private static AnalyzerWithCompilerReport analyzeAndReportErrors(
@NotNull final List<KtFile> sources, @NotNull final Config config) { @NotNull MessageCollector messageCollector, @NotNull final List<KtFile> sources, @NotNull final JsConfig config
) {
AnalyzerWithCompilerReport analyzerWithCompilerReport = new AnalyzerWithCompilerReport(messageCollector); AnalyzerWithCompilerReport analyzerWithCompilerReport = new AnalyzerWithCompilerReport(messageCollector);
analyzerWithCompilerReport.analyzeAndReport(sources, new AnalyzerWithCompilerReport.Analyzer() { analyzerWithCompilerReport.analyzeAndReport(sources, new AnalyzerWithCompilerReport.Analyzer() {
@NotNull @NotNull
@@ -244,7 +245,7 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
} }
@NotNull @NotNull
private static Config getConfig(@NotNull K2JSCompilerArguments arguments, @NotNull Project project) { private static JsConfig getConfig(@NotNull K2JSCompilerArguments arguments, @NotNull Project project) {
if (arguments.target != null) { if (arguments.target != null) {
assert arguments.target == "v5" : "Unsupported ECMA version: " + arguments.target; assert arguments.target == "v5" : "Unsupported ECMA version: " + arguments.target;
} }
@@ -21,7 +21,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles;
import org.jetbrains.kotlin.context.ModuleContext; import org.jetbrains.kotlin.context.ModuleContext;
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl; import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS; import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS;
import org.jetbrains.kotlin.js.config.Config; import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig;
import org.jetbrains.kotlin.js.resolve.JsPlatform; import org.jetbrains.kotlin.js.resolve.JsPlatform;
import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.name.Name;
@@ -35,7 +35,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
public abstract class AbstractDiagnosticsTestWithJsStdLib extends AbstractDiagnosticsTest { public abstract class AbstractDiagnosticsTestWithJsStdLib extends AbstractDiagnosticsTest {
private Config config; private JsConfig config;
@Override @Override
protected void setUp() throws Exception { protected void setUp() throws Exception {
@@ -94,7 +94,7 @@ public abstract class AbstractDiagnosticsTestWithJsStdLib extends AbstractDiagno
return module; return module;
} }
protected Config getConfig() { protected JsConfig getConfig() {
return config; return config;
} }
} }
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase; import org.jetbrains.kotlin.idea.test.PluginTestCaseBase;
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS; import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS;
import org.jetbrains.kotlin.js.config.Config; import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig;
import org.jetbrains.kotlin.js.resolve.diagnostics.ErrorsJs; import org.jetbrains.kotlin.js.resolve.diagnostics.ErrorsJs;
import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.psi.KtFile;
@@ -59,7 +59,7 @@ public abstract class AbstractDiagnosticMessageJsTest extends AbstractDiagnostic
} }
@NotNull @NotNull
private Config getConfig() { private JsConfig getConfig() {
return new LibrarySourcesConfig.Builder(getProject(), "testModule", LibrarySourcesConfig.JS_STDLIB) return new LibrarySourcesConfig.Builder(getProject(), "testModule", LibrarySourcesConfig.JS_STDLIB)
.inlineEnabled(false) .inlineEnabled(false)
.isUnitTestConfig(true) .isUnitTestConfig(true)
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.descriptors.PackageFragmentProvider;
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl; import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.kotlin.frontend.js.di.InjectionKt; import org.jetbrains.kotlin.frontend.js.di.InjectionKt;
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult; import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult;
import org.jetbrains.kotlin.js.config.Config; import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.resolve.JsPlatform; import org.jetbrains.kotlin.js.resolve.JsPlatform;
import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.psi.KtFile;
@@ -41,10 +41,7 @@ public final class TopDownAnalyzerFacadeForJS {
} }
@NotNull @NotNull
public static JsAnalysisResult analyzeFiles( public static JsAnalysisResult analyzeFiles(@NotNull Collection<KtFile> files, @NotNull JsConfig config) {
@NotNull Collection<KtFile> files,
@NotNull Config config
) {
BindingTrace trace = new BindingTraceContext(); BindingTrace trace = new BindingTraceContext();
MutableModuleContext newModuleContext = ContextKt.ContextForNewModule( MutableModuleContext newModuleContext = ContextKt.ContextForNewModule(
@@ -56,7 +53,7 @@ public final class TopDownAnalyzerFacadeForJS {
} }
@NotNull @NotNull
private static List<ModuleDescriptorImpl> computeDependencies(ModuleDescriptorImpl module, @NotNull Config config) { private static List<ModuleDescriptorImpl> computeDependencies(ModuleDescriptorImpl module, @NotNull JsConfig config) {
List<ModuleDescriptorImpl> allDependencies = new ArrayList<ModuleDescriptorImpl>(); List<ModuleDescriptorImpl> allDependencies = new ArrayList<ModuleDescriptorImpl>();
allDependencies.add(module); allDependencies.add(module);
allDependencies.addAll(config.getModuleDescriptors()); allDependencies.addAll(config.getModuleDescriptors());
@@ -69,9 +66,9 @@ public final class TopDownAnalyzerFacadeForJS {
@NotNull Collection<KtFile> files, @NotNull Collection<KtFile> files,
@NotNull BindingTrace trace, @NotNull BindingTrace trace,
@NotNull ModuleContext moduleContext, @NotNull ModuleContext moduleContext,
@NotNull Config config @NotNull JsConfig config
) { ) {
Collection<KtFile> allFiles = Config.withJsLibAdded(files, config); Collection<KtFile> allFiles = JsConfig.withJsLibAdded(files, config);
LazyTopDownAnalyzerForTopLevel analyzerForJs = InjectionKt.createTopDownAnalyzerForJs( LazyTopDownAnalyzerForTopLevel analyzerForJs = InjectionKt.createTopDownAnalyzerForJs(
moduleContext, trace, moduleContext, trace,
@@ -41,7 +41,7 @@ import java.util.List;
/** /**
* Base class representing a configuration of translator. * Base class representing a configuration of translator.
*/ */
public abstract class Config { public abstract class JsConfig {
private final boolean inlineEnabled; private final boolean inlineEnabled;
@NotNull @NotNull
private final Project project; private final Project project;
@@ -67,7 +67,7 @@ public abstract class Config {
private boolean initialized = false; private boolean initialized = false;
protected Config( protected JsConfig(
@NotNull Project project, @NotNull Project project,
@NotNull String moduleId, @NotNull String moduleId,
@NotNull EcmaVersion ecmaVersion, @NotNull EcmaVersion ecmaVersion,
@@ -176,7 +176,7 @@ public abstract class Config {
} }
@NotNull @NotNull
public static Collection<KtFile> withJsLibAdded(@NotNull Collection<KtFile> files, @NotNull Config config) { public static Collection<KtFile> withJsLibAdded(@NotNull Collection<KtFile> files, @NotNull JsConfig config) {
Collection<KtFile> allFiles = Lists.newArrayList(); Collection<KtFile> allFiles = Lists.newArrayList();
allFiles.addAll(files); allFiles.addAll(files);
allFiles.addAll(config.getSourceFilesFromLibraries()); allFiles.addAll(config.getSourceFilesFromLibraries());
@@ -43,7 +43,7 @@ import java.util.List;
import static org.jetbrains.kotlin.utils.LibraryUtils.isOldKotlinJavascriptLibrary; import static org.jetbrains.kotlin.utils.LibraryUtils.isOldKotlinJavascriptLibrary;
import static org.jetbrains.kotlin.utils.PathUtil.getKotlinPathsForDistDirectory; import static org.jetbrains.kotlin.utils.PathUtil.getKotlinPathsForDistDirectory;
public class LibrarySourcesConfig extends Config { public class LibrarySourcesConfig extends JsConfig {
public static final List<String> JS_STDLIB = public static final List<String> JS_STDLIB =
Collections.singletonList(getKotlinPathsForDistDirectory().getJsStdLibJarPath().getAbsolutePath()); Collections.singletonList(getKotlinPathsForDistDirectory().getJsStdLibJarPath().getAbsolutePath());
@@ -236,7 +236,7 @@ public class LibrarySourcesConfig extends Config {
return this; return this;
} }
public Config build() { public JsConfig build() {
return new LibrarySourcesConfig(project, moduleId, files, ecmaVersion, sourceMap, inlineEnabled, isUnitTestConfig, metaInfo, kjsm); return new LibrarySourcesConfig(project, moduleId, files, ecmaVersion, sourceMap, inlineEnabled, isUnitTestConfig, metaInfo, kjsm);
} }
} }
@@ -38,8 +38,8 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
import org.jetbrains.kotlin.config.CompilerConfiguration; import org.jetbrains.kotlin.config.CompilerConfiguration;
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.config.Config;
import org.jetbrains.kotlin.js.config.EcmaVersion; import org.jetbrains.kotlin.js.config.EcmaVersion;
import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig;
import org.jetbrains.kotlin.js.facade.K2JSTranslator; import org.jetbrains.kotlin.js.facade.K2JSTranslator;
import org.jetbrains.kotlin.js.facade.MainCallParameters; import org.jetbrains.kotlin.js.facade.MainCallParameters;
@@ -182,7 +182,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
List<String> allFiles = withAdditionalKotlinFiles(files); List<String> allFiles = withAdditionalKotlinFiles(files);
List<KtFile> jetFiles = createJetFileList(project, allFiles, null); List<KtFile> jetFiles = createJetFileList(project, allFiles, null);
Config config = createConfig(getProject(), moduleName, version, libraries, jetFiles); JsConfig config = createConfig(getProject(), moduleName, version, libraries, jetFiles);
File outputFile = new File(getOutputFilePath(testName, version)); File outputFile = new File(getOutputFilePath(testName, version));
translateFiles(jetFiles, outputFile, mainCallParameters, config); translateFiles(jetFiles, outputFile, mainCallParameters, config);
@@ -196,7 +196,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
@NotNull List<KtFile> jetFiles, @NotNull List<KtFile> jetFiles,
@NotNull File outputFile, @NotNull File outputFile,
@NotNull MainCallParameters mainCallParameters, @NotNull MainCallParameters mainCallParameters,
@NotNull Config config @NotNull JsConfig config
) throws Exception { ) throws Exception {
K2JSTranslator translator = new K2JSTranslator(config); K2JSTranslator translator = new K2JSTranslator(config);
TranslationResult translationResult = translator.translate(jetFiles, mainCallParameters); TranslationResult translationResult = translator.translate(jetFiles, mainCallParameters);
@@ -321,7 +321,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
} }
@NotNull @NotNull
private Config createConfig( private JsConfig createConfig(
@NotNull Project project, @NotNull Project project,
@NotNull String moduleId, @NotNull String moduleId,
@NotNull EcmaVersion ecmaVersion, @NotNull EcmaVersion ecmaVersion,
@@ -19,15 +19,15 @@ package org.jetbrains.kotlin.js.facade;
import com.google.dart.compiler.backend.js.ast.JsProgram; import com.google.dart.compiler.backend.js.ast.JsProgram;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
import org.jetbrains.kotlin.descriptors.ModuleDescriptor; import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS; import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS;
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult; import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult;
import org.jetbrains.kotlin.js.config.Config; import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.facade.exceptions.TranslationException; import org.jetbrains.kotlin.js.facade.exceptions.TranslationException;
import org.jetbrains.kotlin.js.inline.JsInliner; import org.jetbrains.kotlin.js.inline.JsInliner;
import org.jetbrains.kotlin.js.translate.context.TranslationContext; import org.jetbrains.kotlin.js.translate.context.TranslationContext;
import org.jetbrains.kotlin.js.translate.general.Translation; import org.jetbrains.kotlin.js.translate.general.Translation;
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.psi.KtFile;
import org.jetbrains.kotlin.resolve.BindingTrace; import org.jetbrains.kotlin.resolve.BindingTrace;
import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics; import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics;
@@ -46,9 +46,9 @@ public final class K2JSTranslator {
public static final String GET_SYSTEM_OUT = "Kotlin.out.buffer;\n"; public static final String GET_SYSTEM_OUT = "Kotlin.out.buffer;\n";
@NotNull @NotNull
private final Config config; private final JsConfig config;
public K2JSTranslator(@NotNull Config config) { public K2JSTranslator(@NotNull JsConfig config) {
this.config = config; this.config = config;
} }
@@ -72,7 +72,7 @@ public final class K2JSTranslator {
} }
BindingTrace bindingTrace = analysisResult.getBindingTrace(); BindingTrace bindingTrace = analysisResult.getBindingTrace();
TopDownAnalyzerFacadeForJS.checkForErrors(Config.withJsLibAdded(files, config), bindingTrace.getBindingContext()); TopDownAnalyzerFacadeForJS.checkForErrors(JsConfig.withJsLibAdded(files, config), bindingTrace.getBindingContext());
ModuleDescriptor moduleDescriptor = analysisResult.getModuleDescriptor(); ModuleDescriptor moduleDescriptor = analysisResult.getModuleDescriptor();
Diagnostics diagnostics = bindingTrace.getBindingContext().getDiagnostics(); Diagnostics diagnostics = bindingTrace.getBindingContext().getDiagnostics();
@@ -23,7 +23,7 @@ import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.vfs.VfsUtilCore import com.intellij.openapi.vfs.VfsUtilCore
import org.jetbrains.kotlin.backend.common.output.* import org.jetbrains.kotlin.backend.common.output.*
import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.ModuleDescriptor
import org.jetbrains.kotlin.js.config.Config import org.jetbrains.kotlin.js.config.JsConfig
import org.jetbrains.kotlin.js.sourceMap.JsSourceGenerationVisitor import org.jetbrains.kotlin.js.sourceMap.JsSourceGenerationVisitor
import org.jetbrains.kotlin.js.sourceMap.SourceMap3Builder import org.jetbrains.kotlin.js.sourceMap.SourceMap3Builder
import org.jetbrains.kotlin.js.sourceMap.SourceMapBuilder import org.jetbrains.kotlin.js.sourceMap.SourceMapBuilder
@@ -32,14 +32,14 @@ import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializationUtil
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
import java.io.File import java.io.File
import java.util.ArrayList import java.util.*
abstract class TranslationResult protected constructor(val diagnostics: Diagnostics) { abstract class TranslationResult protected constructor(val diagnostics: Diagnostics) {
class Fail(diagnostics: Diagnostics) : TranslationResult(diagnostics) class Fail(diagnostics: Diagnostics) : TranslationResult(diagnostics)
class Success( class Success(
private val config: Config, private val config: JsConfig,
private val files: List<KtFile>, private val files: List<KtFile>,
val program: JsProgram, val program: JsProgram,
diagnostics: Diagnostics, diagnostics: Diagnostics,
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.builtins.ReflectionTypes; import org.jetbrains.kotlin.builtins.ReflectionTypes;
import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.js.config.Config; import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfig; import org.jetbrains.kotlin.js.config.LibrarySourcesConfig;
import org.jetbrains.kotlin.js.translate.context.generator.Generator; import org.jetbrains.kotlin.js.translate.context.generator.Generator;
import org.jetbrains.kotlin.js.translate.context.generator.Rule; import org.jetbrains.kotlin.js.translate.context.generator.Rule;
@@ -47,9 +47,7 @@ import static org.jetbrains.kotlin.js.translate.utils.JsAstUtils.fqnWithoutSideE
import static org.jetbrains.kotlin.js.translate.utils.JsDescriptorUtils.*; import static org.jetbrains.kotlin.js.translate.utils.JsDescriptorUtils.*;
import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getMangledName; import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getMangledName;
import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getSuggestedName; import static org.jetbrains.kotlin.js.translate.utils.ManglingUtils.getSuggestedName;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.getParentOfType; import static org.jetbrains.kotlin.resolve.DescriptorUtils.*;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isCompanionObject;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isExtension;
import static org.jetbrains.kotlin.resolve.calls.tasks.DynamicCallsKt.isDynamic; import static org.jetbrains.kotlin.resolve.calls.tasks.DynamicCallsKt.isDynamic;
/** /**
@@ -57,7 +55,7 @@ import static org.jetbrains.kotlin.resolve.calls.tasks.DynamicCallsKt.isDynamic;
*/ */
public final class StaticContext { public final class StaticContext {
public static StaticContext generateStaticContext(@NotNull BindingTrace bindingTrace, @NotNull Config config, @NotNull ModuleDescriptor moduleDescriptor) { public static StaticContext generateStaticContext(@NotNull BindingTrace bindingTrace, @NotNull JsConfig config, @NotNull ModuleDescriptor moduleDescriptor) {
JsProgram program = new JsProgram("main"); JsProgram program = new JsProgram("main");
Namer namer = Namer.newInstance(program.getRootScope()); Namer namer = Namer.newInstance(program.getRootScope());
Intrinsics intrinsics = new Intrinsics(); Intrinsics intrinsics = new Intrinsics();
@@ -103,12 +101,19 @@ public final class StaticContext {
private final Map<MemberDescriptor, List<DeclarationDescriptor>> localClassesClosure = Maps.newHashMap(); private final Map<MemberDescriptor, List<DeclarationDescriptor>> localClassesClosure = Maps.newHashMap();
@NotNull @NotNull
private final Config config; private final JsConfig config;
//TODO: too many parameters in constructor //TODO: too many parameters in constructor
private StaticContext(@NotNull JsProgram program, @NotNull BindingTrace bindingTrace, private StaticContext(
@NotNull Namer namer, @NotNull Intrinsics intrinsics, @NotNull JsProgram program,
@NotNull StandardClasses standardClasses, @NotNull JsScope rootScope, @NotNull Config config, @NotNull ModuleDescriptor moduleDescriptor) { @NotNull BindingTrace bindingTrace,
@NotNull Namer namer,
@NotNull Intrinsics intrinsics,
@NotNull StandardClasses standardClasses,
@NotNull JsScope rootScope,
@NotNull JsConfig config,
@NotNull ModuleDescriptor moduleDescriptor
) {
this.program = program; this.program = program;
this.bindingTrace = bindingTrace; this.bindingTrace = bindingTrace;
this.namer = namer; this.namer = namer;
@@ -234,7 +239,7 @@ public final class StaticContext {
} }
@NotNull @NotNull
public Config getConfig() { public JsConfig getConfig() {
return config; return config;
} }
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.builtins.ReflectionTypes; import org.jetbrains.kotlin.builtins.ReflectionTypes;
import org.jetbrains.kotlin.descriptors.*; import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.js.config.Config; import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.translate.intrinsic.Intrinsics; import org.jetbrains.kotlin.js.translate.intrinsic.Intrinsics;
import org.jetbrains.kotlin.js.translate.utils.TranslationUtils; import org.jetbrains.kotlin.js.translate.utils.TranslationUtils;
import org.jetbrains.kotlin.name.FqName; import org.jetbrains.kotlin.name.FqName;
@@ -279,7 +279,7 @@ public class TranslationContext {
} }
@NotNull @NotNull
public Config getConfig() { public JsConfig getConfig() {
return staticContext.getConfig(); return staticContext.getConfig();
} }
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.FunctionDescriptor; import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
import org.jetbrains.kotlin.descriptors.ModuleDescriptor; import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.idea.MainFunctionDetector; import org.jetbrains.kotlin.idea.MainFunctionDetector;
import org.jetbrains.kotlin.js.config.Config; import org.jetbrains.kotlin.js.config.JsConfig;
import org.jetbrains.kotlin.js.facade.MainCallParameters; import org.jetbrains.kotlin.js.facade.MainCallParameters;
import org.jetbrains.kotlin.js.facade.exceptions.TranslationException; import org.jetbrains.kotlin.js.facade.exceptions.TranslationException;
import org.jetbrains.kotlin.js.facade.exceptions.TranslationRuntimeException; import org.jetbrains.kotlin.js.facade.exceptions.TranslationRuntimeException;
@@ -172,7 +172,7 @@ public final class Translation {
@NotNull Collection<KtFile> files, @NotNull Collection<KtFile> files,
@NotNull MainCallParameters mainCallParameters, @NotNull MainCallParameters mainCallParameters,
@NotNull ModuleDescriptor moduleDescriptor, @NotNull ModuleDescriptor moduleDescriptor,
@NotNull Config config @NotNull JsConfig config
) throws TranslationException { ) throws TranslationException {
try { try {
return doGenerateAst(bindingTrace, files, mainCallParameters, moduleDescriptor, config); return doGenerateAst(bindingTrace, files, mainCallParameters, moduleDescriptor, config);
@@ -186,10 +186,12 @@ public final class Translation {
} }
@NotNull @NotNull
private static TranslationContext doGenerateAst(@NotNull BindingTrace bindingTrace, @NotNull Collection<KtFile> files, private static TranslationContext doGenerateAst(
@NotNull BindingTrace bindingTrace,
@NotNull Collection<KtFile> files,
@NotNull MainCallParameters mainCallParameters, @NotNull MainCallParameters mainCallParameters,
@NotNull ModuleDescriptor moduleDescriptor, @NotNull ModuleDescriptor moduleDescriptor,
@NotNull Config config @NotNull JsConfig config
) { ) {
StaticContext staticContext = StaticContext.generateStaticContext(bindingTrace, config, moduleDescriptor); StaticContext staticContext = StaticContext.generateStaticContext(bindingTrace, config, moduleDescriptor);
JsProgram program = staticContext.getProgram(); JsProgram program = staticContext.getProgram();
@@ -222,8 +224,9 @@ public final class Translation {
} }
} }
private static void mayBeGenerateTests(@NotNull Collection<KtFile> files, @NotNull Config config, private static void mayBeGenerateTests(
@NotNull JsBlock rootBlock, @NotNull TranslationContext context) { @NotNull Collection<KtFile> files, @NotNull JsConfig config, @NotNull JsBlock rootBlock, @NotNull TranslationContext context
) {
JSTester tester = config.isTestConfig() ? new JSRhinoUnitTester() : new QUnitTester(); JSTester tester = config.isTestConfig() ? new JSRhinoUnitTester() : new QUnitTester();
tester.initialize(context, rootBlock); tester.initialize(context, rootBlock);
JSTestGenerator.generateTestCalls(context, files, tester); JSTestGenerator.generateTestCalls(context, files, tester);