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); jetImportsFactory.setProject(project);
scriptHeaderResolver.setContext(topDownAnalysisContext);
scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver); scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
@@ -234,7 +234,6 @@ public class InjectorForTopDownAnalyzerBasic {
jetImportsFactory.setProject(project); jetImportsFactory.setProject(project);
scriptHeaderResolver.setContext(topDownAnalysisContext);
scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy); scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
@@ -177,7 +177,7 @@ public class DeclarationResolver {
classDescriptor.getBuilder()); classDescriptor.getBuilder());
} }
scriptHeaderResolver.resolveScriptDeclarations(); scriptHeaderResolver.resolveScriptDeclarations(c);
// TODO : Extensions // TODO : Extensions
} }
@@ -55,8 +55,6 @@ public class ScriptHeaderResolver {
@NotNull @NotNull
private DependencyClassByQualifiedNameResolver dependencyClassByQualifiedNameResolver; private DependencyClassByQualifiedNameResolver dependencyClassByQualifiedNameResolver;
@NotNull @NotNull
private TopDownAnalysisContext context;
@NotNull
private BindingTrace trace; private BindingTrace trace;
@NotNull @NotNull
private TopDownAnalysisParameters topDownAnalysisParameters; private TopDownAnalysisParameters topDownAnalysisParameters;
@@ -71,11 +69,6 @@ public class ScriptHeaderResolver {
this.dependencyClassByQualifiedNameResolver = dependencyClassByQualifiedNameResolver; this.dependencyClassByQualifiedNameResolver = dependencyClassByQualifiedNameResolver;
} }
@Inject
public void setContext(@NotNull TopDownAnalysisContext context) {
this.context = context;
}
@Inject @Inject
public void setTrace(@NotNull BindingTrace trace) { public void setTrace(@NotNull BindingTrace trace) {
this.trace = trace; this.trace = trace;
@@ -116,7 +109,7 @@ public class ScriptHeaderResolver {
return new ValueParameterDescriptorImpl(script, index, Annotations.EMPTY, scriptParameter.getName(), type, false, null); 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(); JetFile file = (JetFile) script.getContainingFile();
JetPackageDirective packageDirective = file.getPackageDirective(); JetPackageDirective packageDirective = file.getPackageDirective();
FqName fqName = packageDirective != null ? new FqName(packageDirective.getQualifiedName()) : FqName.ROOT; 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"); WritableScopeImpl scriptScope = new WritableScopeImpl(outerScope, scriptDescriptor, RedeclarationHandler.DO_NOTHING, "script");
scriptScope.changeLockLevel(WritableScope.LockLevel.BOTH); scriptScope.changeLockLevel(WritableScope.LockLevel.BOTH);
context.getScriptScopes().put(script, scriptScope); c.getScriptScopes().put(script, scriptScope);
context.getScripts().put(script, scriptDescriptor); c.getScripts().put(script, scriptDescriptor);
trace.record(BindingContext.SCRIPT, script, scriptDescriptor); trace.record(BindingContext.SCRIPT, script, scriptDescriptor);
((WritableScope)outerScope).addClassifierDescriptor(scriptDescriptor.getClassDescriptor()); ((WritableScope)outerScope).addClassifierDescriptor(scriptDescriptor.getClassDescriptor());
} }
public void resolveScriptDeclarations() { public void resolveScriptDeclarations(@NotNull TopDownAnalysisContext c) {
for (Map.Entry<JetScript, ScriptDescriptor> e : context.getScripts().entrySet()) { for (Map.Entry<JetScript, ScriptDescriptor> e : c.getScripts().entrySet()) {
JetScript declaration = e.getKey(); JetScript declaration = e.getKey();
ScriptDescriptor descriptor = e.getValue(); ScriptDescriptor descriptor = e.getValue();
WritableScope scope = context.getScriptScopes().get(declaration); WritableScope scope = c.getScriptScopes().get(declaration);
List<ValueParameterDescriptor> valueParameters = Lists.newArrayList(); List<ValueParameterDescriptor> valueParameters = Lists.newArrayList();
@@ -468,7 +468,7 @@ public class TypeHierarchyResolver {
context.getFileScopes().put(file, packageScope); context.getFileScopes().put(file, packageScope);
if (file.isScript()) { if (file.isScript()) {
scriptHeaderResolver.processScriptHierarchy(file.getScript(), packageScope); scriptHeaderResolver.processScriptHierarchy(context, file.getScript(), packageScope);
} }
prepareForDeferredCall(packageScope, packageFragment, file); prepareForDeferredCall(packageScope, packageFragment, file);
@@ -234,7 +234,6 @@ public class InjectorForTopDownAnalyzerForJs {
jetImportsFactory.setProject(project); jetImportsFactory.setProject(project);
scriptHeaderResolver.setContext(topDownAnalysisContext);
scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy); scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider); scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters); scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);