Do not inject TopDownAnalysisContext into ScriptHeaderResolver

This commit is contained in:
Andrey Breslav
2014-02-23 11:23:25 +04:00
parent 7e43f2e61e
commit 25e533a42d
6 changed files with 8 additions and 18 deletions
@@ -279,7 +279,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
jetImportsFactory.setProject(project);
scriptHeaderResolver.setContext(topDownAnalysisContext);
scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
@@ -234,7 +234,6 @@ public class InjectorForTopDownAnalyzerBasic {
jetImportsFactory.setProject(project);
scriptHeaderResolver.setContext(topDownAnalysisContext);
scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
@@ -177,7 +177,7 @@ public class DeclarationResolver {
classDescriptor.getBuilder());
}
scriptHeaderResolver.resolveScriptDeclarations();
scriptHeaderResolver.resolveScriptDeclarations(c);
// TODO : Extensions
}
@@ -55,8 +55,6 @@ public class ScriptHeaderResolver {
@NotNull
private DependencyClassByQualifiedNameResolver dependencyClassByQualifiedNameResolver;
@NotNull
private TopDownAnalysisContext context;
@NotNull
private BindingTrace trace;
@NotNull
private TopDownAnalysisParameters topDownAnalysisParameters;
@@ -71,11 +69,6 @@ public class ScriptHeaderResolver {
this.dependencyClassByQualifiedNameResolver = dependencyClassByQualifiedNameResolver;
}
@Inject
public void setContext(@NotNull TopDownAnalysisContext context) {
this.context = context;
}
@Inject
public void setTrace(@NotNull BindingTrace trace) {
this.trace = trace;
@@ -116,7 +109,7 @@ public class ScriptHeaderResolver {
return new ValueParameterDescriptorImpl(script, index, Annotations.EMPTY, scriptParameter.getName(), type, false, null);
}
public void processScriptHierarchy(@NotNull JetScript script, @NotNull JetScope outerScope) {
public void processScriptHierarchy(@NotNull TopDownAnalysisContext c, @NotNull JetScript script, @NotNull JetScope outerScope) {
JetFile file = (JetFile) script.getContainingFile();
JetPackageDirective packageDirective = file.getPackageDirective();
FqName fqName = packageDirective != null ? new FqName(packageDirective.getQualifiedName()) : FqName.ROOT;
@@ -135,19 +128,19 @@ public class ScriptHeaderResolver {
WritableScopeImpl scriptScope = new WritableScopeImpl(outerScope, scriptDescriptor, RedeclarationHandler.DO_NOTHING, "script");
scriptScope.changeLockLevel(WritableScope.LockLevel.BOTH);
context.getScriptScopes().put(script, scriptScope);
context.getScripts().put(script, scriptDescriptor);
c.getScriptScopes().put(script, scriptScope);
c.getScripts().put(script, scriptDescriptor);
trace.record(BindingContext.SCRIPT, script, scriptDescriptor);
((WritableScope)outerScope).addClassifierDescriptor(scriptDescriptor.getClassDescriptor());
}
public void resolveScriptDeclarations() {
for (Map.Entry<JetScript, ScriptDescriptor> e : context.getScripts().entrySet()) {
public void resolveScriptDeclarations(@NotNull TopDownAnalysisContext c) {
for (Map.Entry<JetScript, ScriptDescriptor> e : c.getScripts().entrySet()) {
JetScript declaration = e.getKey();
ScriptDescriptor descriptor = e.getValue();
WritableScope scope = context.getScriptScopes().get(declaration);
WritableScope scope = c.getScriptScopes().get(declaration);
List<ValueParameterDescriptor> valueParameters = Lists.newArrayList();
@@ -468,7 +468,7 @@ public class TypeHierarchyResolver {
context.getFileScopes().put(file, packageScope);
if (file.isScript()) {
scriptHeaderResolver.processScriptHierarchy(file.getScript(), packageScope);
scriptHeaderResolver.processScriptHierarchy(context, file.getScript(), packageScope);
}
prepareForDeferredCall(packageScope, packageFragment, file);
@@ -234,7 +234,6 @@ public class InjectorForTopDownAnalyzerForJs {
jetImportsFactory.setProject(project);
scriptHeaderResolver.setContext(topDownAnalysisContext);
scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);