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.js.analyze.TopDownAnalyzerFacadeForJS;
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.JsConfig;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfig;
import org.jetbrains.kotlin.js.facade.K2JSTranslator;
import org.jetbrains.kotlin.js.facade.MainCallParameters;
@@ -119,7 +119,7 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
File outputFile = new File(arguments.outputFile);
Config config = getConfig(arguments, project);
JsConfig config = getConfig(arguments, project);
if (config.checkLibFilesAndReportErrors(new Function1<String, Unit>() {
@Override
public Unit invoke(String message) {
@@ -219,8 +219,9 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
CompilerMessageLocation.NO_LOCATION);
}
private static AnalyzerWithCompilerReport analyzeAndReportErrors(@NotNull MessageCollector messageCollector,
@NotNull final List<KtFile> sources, @NotNull final Config config) {
private static AnalyzerWithCompilerReport analyzeAndReportErrors(
@NotNull MessageCollector messageCollector, @NotNull final List<KtFile> sources, @NotNull final JsConfig config
) {
AnalyzerWithCompilerReport analyzerWithCompilerReport = new AnalyzerWithCompilerReport(messageCollector);
analyzerWithCompilerReport.analyzeAndReport(sources, new AnalyzerWithCompilerReport.Analyzer() {
@NotNull
@@ -244,7 +245,7 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
}
@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) {
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.descriptors.impl.ModuleDescriptorImpl;
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.resolve.JsPlatform;
import org.jetbrains.kotlin.name.Name;
@@ -35,7 +35,7 @@ import java.util.List;
import java.util.Map;
public abstract class AbstractDiagnosticsTestWithJsStdLib extends AbstractDiagnosticsTest {
private Config config;
private JsConfig config;
@Override
protected void setUp() throws Exception {
@@ -94,7 +94,7 @@ public abstract class AbstractDiagnosticsTestWithJsStdLib extends AbstractDiagno
return module;
}
protected Config getConfig() {
protected JsConfig getConfig() {
return config;
}
}
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment;
import org.jetbrains.kotlin.config.CompilerConfiguration;
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase;
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.resolve.diagnostics.ErrorsJs;
import org.jetbrains.kotlin.psi.KtFile;
@@ -59,7 +59,7 @@ public abstract class AbstractDiagnosticMessageJsTest extends AbstractDiagnostic
}
@NotNull
private Config getConfig() {
private JsConfig getConfig() {
return new LibrarySourcesConfig.Builder(getProject(), "testModule", LibrarySourcesConfig.JS_STDLIB)
.inlineEnabled(false)
.isUnitTestConfig(true)
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.descriptors.PackageFragmentProvider;
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.kotlin.frontend.js.di.InjectionKt;
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.name.Name;
import org.jetbrains.kotlin.psi.KtFile;
@@ -41,10 +41,7 @@ public final class TopDownAnalyzerFacadeForJS {
}
@NotNull
public static JsAnalysisResult analyzeFiles(
@NotNull Collection<KtFile> files,
@NotNull Config config
) {
public static JsAnalysisResult analyzeFiles(@NotNull Collection<KtFile> files, @NotNull JsConfig config) {
BindingTrace trace = new BindingTraceContext();
MutableModuleContext newModuleContext = ContextKt.ContextForNewModule(
@@ -56,7 +53,7 @@ public final class TopDownAnalyzerFacadeForJS {
}
@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>();
allDependencies.add(module);
allDependencies.addAll(config.getModuleDescriptors());
@@ -69,9 +66,9 @@ public final class TopDownAnalyzerFacadeForJS {
@NotNull Collection<KtFile> files,
@NotNull BindingTrace trace,
@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(
moduleContext, trace,
@@ -41,7 +41,7 @@ import java.util.List;
/**
* Base class representing a configuration of translator.
*/
public abstract class Config {
public abstract class JsConfig {
private final boolean inlineEnabled;
@NotNull
private final Project project;
@@ -67,7 +67,7 @@ public abstract class Config {
private boolean initialized = false;
protected Config(
protected JsConfig(
@NotNull Project project,
@NotNull String moduleId,
@NotNull EcmaVersion ecmaVersion,
@@ -176,7 +176,7 @@ public abstract class Config {
}
@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();
allFiles.addAll(files);
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.PathUtil.getKotlinPathsForDistDirectory;
public class LibrarySourcesConfig extends Config {
public class LibrarySourcesConfig extends JsConfig {
public static final List<String> JS_STDLIB =
Collections.singletonList(getKotlinPathsForDistDirectory().getJsStdLibJarPath().getAbsolutePath());
@@ -236,7 +236,7 @@ public class LibrarySourcesConfig extends Config {
return this;
}
public Config build() {
public JsConfig build() {
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.idea.KotlinFileType;
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.JsConfig;
import org.jetbrains.kotlin.js.config.LibrarySourcesConfig;
import org.jetbrains.kotlin.js.facade.K2JSTranslator;
import org.jetbrains.kotlin.js.facade.MainCallParameters;
@@ -182,7 +182,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
List<String> allFiles = withAdditionalKotlinFiles(files);
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));
translateFiles(jetFiles, outputFile, mainCallParameters, config);
@@ -196,7 +196,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
@NotNull List<KtFile> jetFiles,
@NotNull File outputFile,
@NotNull MainCallParameters mainCallParameters,
@NotNull Config config
@NotNull JsConfig config
) throws Exception {
K2JSTranslator translator = new K2JSTranslator(config);
TranslationResult translationResult = translator.translate(jetFiles, mainCallParameters);
@@ -321,7 +321,7 @@ public abstract class BasicTest extends KotlinTestWithEnvironment {
}
@NotNull
private Config createConfig(
private JsConfig createConfig(
@NotNull Project project,
@NotNull String moduleId,
@NotNull EcmaVersion ecmaVersion,
@@ -19,15 +19,15 @@ package org.jetbrains.kotlin.js.facade;
import com.google.dart.compiler.backend.js.ast.JsProgram;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.js.analyze.TopDownAnalyzerFacadeForJS;
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.inline.JsInliner;
import org.jetbrains.kotlin.js.translate.context.TranslationContext;
import org.jetbrains.kotlin.js.translate.general.Translation;
import org.jetbrains.kotlin.progress.ProgressIndicatorAndCompilationCanceledStatus;
import org.jetbrains.kotlin.psi.KtFile;
import org.jetbrains.kotlin.resolve.BindingTrace;
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";
@NotNull
private final Config config;
private final JsConfig config;
public K2JSTranslator(@NotNull Config config) {
public K2JSTranslator(@NotNull JsConfig config) {
this.config = config;
}
@@ -72,7 +72,7 @@ public final class K2JSTranslator {
}
BindingTrace bindingTrace = analysisResult.getBindingTrace();
TopDownAnalyzerFacadeForJS.checkForErrors(Config.withJsLibAdded(files, config), bindingTrace.getBindingContext());
TopDownAnalyzerFacadeForJS.checkForErrors(JsConfig.withJsLibAdded(files, config), bindingTrace.getBindingContext());
ModuleDescriptor moduleDescriptor = analysisResult.getModuleDescriptor();
Diagnostics diagnostics = bindingTrace.getBindingContext().getDiagnostics();
@@ -23,7 +23,7 @@ import com.intellij.openapi.util.text.StringUtil
import com.intellij.openapi.vfs.VfsUtilCore
import org.jetbrains.kotlin.backend.common.output.*
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.SourceMap3Builder
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.utils.KotlinJavascriptMetadataUtils
import java.io.File
import java.util.ArrayList
import java.util.*
abstract class TranslationResult protected constructor(val diagnostics: Diagnostics) {
class Fail(diagnostics: Diagnostics) : TranslationResult(diagnostics)
class Success(
private val config: Config,
private val config: JsConfig,
private val files: List<KtFile>,
val program: JsProgram,
diagnostics: Diagnostics,
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.builtins.ReflectionTypes;
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.translate.context.generator.Generator;
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.ManglingUtils.getMangledName;
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.isCompanionObject;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.isExtension;
import static org.jetbrains.kotlin.resolve.DescriptorUtils.*;
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 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");
Namer namer = Namer.newInstance(program.getRootScope());
Intrinsics intrinsics = new Intrinsics();
@@ -103,12 +101,19 @@ public final class StaticContext {
private final Map<MemberDescriptor, List<DeclarationDescriptor>> localClassesClosure = Maps.newHashMap();
@NotNull
private final Config config;
private final JsConfig config;
//TODO: too many parameters in constructor
private StaticContext(@NotNull JsProgram program, @NotNull BindingTrace bindingTrace,
@NotNull Namer namer, @NotNull Intrinsics intrinsics,
@NotNull StandardClasses standardClasses, @NotNull JsScope rootScope, @NotNull Config config, @NotNull ModuleDescriptor moduleDescriptor) {
private StaticContext(
@NotNull JsProgram program,
@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.bindingTrace = bindingTrace;
this.namer = namer;
@@ -234,7 +239,7 @@ public final class StaticContext {
}
@NotNull
public Config getConfig() {
public JsConfig getConfig() {
return config;
}
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.builtins.ReflectionTypes;
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.utils.TranslationUtils;
import org.jetbrains.kotlin.name.FqName;
@@ -279,7 +279,7 @@ public class TranslationContext {
}
@NotNull
public Config getConfig() {
public JsConfig getConfig() {
return staticContext.getConfig();
}
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.kotlin.descriptors.FunctionDescriptor;
import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
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.exceptions.TranslationException;
import org.jetbrains.kotlin.js.facade.exceptions.TranslationRuntimeException;
@@ -172,7 +172,7 @@ public final class Translation {
@NotNull Collection<KtFile> files,
@NotNull MainCallParameters mainCallParameters,
@NotNull ModuleDescriptor moduleDescriptor,
@NotNull Config config
@NotNull JsConfig config
) throws TranslationException {
try {
return doGenerateAst(bindingTrace, files, mainCallParameters, moduleDescriptor, config);
@@ -186,10 +186,12 @@ public final class Translation {
}
@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 ModuleDescriptor moduleDescriptor,
@NotNull Config config
@NotNull JsConfig config
) {
StaticContext staticContext = StaticContext.generateStaticContext(bindingTrace, config, moduleDescriptor);
JsProgram program = staticContext.getProgram();
@@ -222,8 +224,9 @@ public final class Translation {
}
}
private static void mayBeGenerateTests(@NotNull Collection<KtFile> files, @NotNull Config config,
@NotNull JsBlock rootBlock, @NotNull TranslationContext context) {
private static void mayBeGenerateTests(
@NotNull Collection<KtFile> files, @NotNull JsConfig config, @NotNull JsBlock rootBlock, @NotNull TranslationContext context
) {
JSTester tester = config.isTestConfig() ? new JSRhinoUnitTester() : new QUnitTester();
tester.initialize(context, rootBlock);
JSTestGenerator.generateTestCalls(context, files, tester);