Do not inject TopDownAnalysisContext into ImportsResolver

This commit is contained in:
Andrey Breslav
2014-02-23 11:21:22 +04:00
parent 72a62626df
commit 7e43f2e61e
6 changed files with 11 additions and 21 deletions
@@ -272,7 +272,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
declarationResolver.setTrace(bindingTrace);
importsResolver.setContext(topDownAnalysisContext);
importsResolver.setImportsFactory(jetImportsFactory);
importsResolver.setModuleDescriptor(moduleDescriptor);
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
@@ -227,7 +227,6 @@ public class InjectorForTopDownAnalyzerBasic {
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
declarationResolver.setTrace(bindingTrace);
importsResolver.setContext(topDownAnalysisContext);
importsResolver.setImportsFactory(jetImportsFactory);
importsResolver.setModuleDescriptor(moduleDescriptor);
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
@@ -90,7 +90,7 @@ public class DeclarationResolver {
resolveAnnotationStubsOnClassesAndConstructors(c);
resolveFunctionAndPropertyHeaders(c);
createFunctionsForDataClasses(c);
importsResolver.processMembersImports();
importsResolver.processMembersImports(c);
checkRedeclarationsInPackages(c);
checkRedeclarationsInInnerClassNames(c);
}
@@ -35,8 +35,6 @@ import static org.jetbrains.jet.lang.diagnostics.Errors.*;
import static org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver.LookupMode;
public class ImportsResolver {
@NotNull
private TopDownAnalysisContext context;
@NotNull
private ModuleDescriptor moduleDescriptor;
@NotNull
@@ -46,11 +44,6 @@ public class ImportsResolver {
@NotNull
private JetImportsFactory importsFactory;
@Inject
public void setContext(@NotNull TopDownAnalysisContext context) {
this.context = context;
}
@Inject
public void setModuleDescriptor(@NotNull ModuleDescriptor moduleDescriptor) {
this.moduleDescriptor = moduleDescriptor;
@@ -71,21 +64,21 @@ public class ImportsResolver {
this.importsFactory = importsFactory;
}
public void processTypeImports() {
processImports(LookupMode.ONLY_CLASSES);
public void processTypeImports(@NotNull TopDownAnalysisContext c) {
processImports(c, LookupMode.ONLY_CLASSES);
}
public void processMembersImports() {
processImports(LookupMode.EVERYTHING);
public void processMembersImports(@NotNull TopDownAnalysisContext c) {
processImports(c, LookupMode.EVERYTHING);
}
private void processImports(@NotNull LookupMode lookupMode) {
for (JetFile file : context.getPackageFragments().keySet()) {
WritableScope fileScope = context.getFileScopes().get(file);
private void processImports(@NotNull TopDownAnalysisContext c, @NotNull LookupMode lookupMode) {
for (JetFile file : c.getPackageFragments().keySet()) {
WritableScope fileScope = c.getFileScopes().get(file);
processImportsInFile(lookupMode, fileScope, Lists.newArrayList(file.getImportDirectives()), JetPsiUtil.getFQName(file).isRoot());
}
for (JetScript script : context.getScripts().keySet()) {
WritableScope scriptScope = context.getScriptScopes().get(script);
for (JetScript script : c.getScripts().keySet()) {
WritableScope scriptScope = c.getScriptScopes().get(script);
processImportsInFile(lookupMode, scriptScope, script.getImportDirectives(), true);
}
}
@@ -128,7 +128,7 @@ public class TypeHierarchyResolver {
}
}
importsResolver.processTypeImports();
importsResolver.processTypeImports(context);
createTypeConstructors(); // create type constructors for classes and generic parameters, supertypes are not filled in
resolveTypesInClassHeaders(); // Generic bounds and types in supertype lists (no expressions or constructor resolution)
@@ -227,7 +227,6 @@ public class InjectorForTopDownAnalyzerForJs {
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
declarationResolver.setTrace(bindingTrace);
importsResolver.setContext(topDownAnalysisContext);
importsResolver.setImportsFactory(jetImportsFactory);
importsResolver.setModuleDescriptor(moduleDescriptor);
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);