JS backend: pass diagnostics to TranslationContext using config
This commit is contained in:
@@ -50,6 +50,7 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
|
||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||
import org.jetbrains.jet.config.Services;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.*;
|
||||
import org.jetbrains.jet.utils.PathUtil;
|
||||
import org.jetbrains.k2js.analyze.TopDownAnalyzerFacadeForJS;
|
||||
import org.jetbrains.k2js.config.*;
|
||||
@@ -148,9 +149,15 @@ public class K2JSCompiler extends CLICompiler<K2JSCompilerArguments> {
|
||||
}
|
||||
|
||||
MainCallParameters mainCallParameters = createMainCallParameters(arguments.main);
|
||||
|
||||
BindingTraceContext trace = new BindingTraceContext();
|
||||
config.setTrace(trace);
|
||||
OutputFileCollection outputFiles = translate(mainCallParameters, config, sourcesFiles, outputFile, outputPrefixFile, outputPostfixFile);
|
||||
|
||||
Diagnostics diagnostics = trace.getBindingContext().getDiagnostics();
|
||||
if (AnalyzerWithCompilerReport.reportDiagnostics(diagnostics, messageCollector)) {
|
||||
return ExitCode.COMPILATION_ERROR;
|
||||
}
|
||||
|
||||
if (outputFile.isDirectory()) {
|
||||
messageCollector.report(CompilerMessageSeverity.ERROR,
|
||||
"Cannot open output file '" + outputFile.getPath() + "': is a directory",
|
||||
|
||||
@@ -23,8 +23,13 @@ import kotlin.Unit;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||
import org.jetbrains.jet.lang.diagnostics.DiagnosticSink;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@@ -47,6 +52,9 @@ public abstract class Config {
|
||||
|
||||
private final boolean sourcemap;
|
||||
|
||||
@NotNull
|
||||
private DiagnosticSink trace = new BindingTraceContext();
|
||||
|
||||
public Config(
|
||||
@NotNull Project project,
|
||||
@NotNull String moduleId,
|
||||
@@ -102,6 +110,15 @@ public abstract class Config {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public DiagnosticSink getTrace() {
|
||||
return trace;
|
||||
}
|
||||
|
||||
public void setTrace(@NotNull DiagnosticSink trace) {
|
||||
this.trace = trace;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ModuleDescriptor getLibraryModule() {
|
||||
return null;
|
||||
|
||||
@@ -24,9 +24,11 @@ import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.MemberDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ReceiverParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.diagnostics.DiagnosticSink;
|
||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||
import org.jetbrains.jet.lang.reflect.ReflectionTypes;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTraceContext;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.k2js.config.Config;
|
||||
import org.jetbrains.k2js.translate.intrinsic.Intrinsics;
|
||||
@@ -163,6 +165,9 @@ public class TranslationContext {
|
||||
return staticContext.getBindingContext();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public DiagnosticSink getTrace() { return staticContext.getConfig().getTrace(); }
|
||||
|
||||
@NotNull
|
||||
public JsScope getScopeForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
||||
return staticContext.getScopeForDescriptor(descriptor);
|
||||
|
||||
Reference in New Issue
Block a user