Do not inject TopDownAnalysisContext into TopDownAnalyzer

This commit is contained in:
Andrey Breslav
2014-02-23 10:58:25 +04:00
parent f32d8b1d06
commit 5976a91998
7 changed files with 67 additions and 72 deletions
@@ -91,6 +91,8 @@ public class ReplInterpreter {
@NotNull
private final InjectorForTopDownAnalyzerForJvm injector;
@NotNull
private final TopDownAnalysisContext topDownAnalysisContext;
@NotNull
private final JetCoreEnvironment jetCoreEnvironment;
@NotNull
private final BindingTraceContext trace;
@@ -110,6 +112,7 @@ public class ReplInterpreter {
true,
Collections.<AnalyzerScriptParameter>emptyList());
injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
topDownAnalysisContext = new TopDownAnalysisContext(topDownAnalysisParameters);
module.addFragmentProvider(SOURCES, injector.getTopDownAnalyzer().getPackageFragmentProvider());
module.addFragmentProvider(BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
module.addFragmentProvider(BINARIES, injector.getJavaDescriptorResolver().getPackageFragmentProvider());
@@ -227,7 +230,7 @@ public class ReplInterpreter {
return LineResult.error(errorCollector.getString());
}
injector.getTopDownAnalyzer().prepareForTheNextReplLine();
injector.getTopDownAnalyzer().prepareForTheNextReplLine(topDownAnalysisContext);
trace.clearDiagnostics();
psiFile.getScript().putUserData(ScriptHeaderResolver.PRIORITY_KEY, lineNumber);
@@ -307,7 +310,8 @@ public class ReplInterpreter {
// dummy builder is used because "root" is module descriptor,
// packages added to module explicitly in
injector.getTopDownAnalyzer().doProcess(scope, new PackageLikeBuilderDummy(), Collections.singletonList(psiFile));
injector.getTopDownAnalyzer().doProcess(topDownAnalysisContext,
scope, new PackageLikeBuilderDummy(), Collections.singletonList(psiFile));
boolean hasErrors = AnalyzerWithCompilerReport.reportDiagnostics(trace.getBindingContext(), messageCollector);
if (hasErrors) {