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.setScriptHeaderResolver(scriptHeaderResolver);
declarationResolver.setTrace(bindingTrace); declarationResolver.setTrace(bindingTrace);
importsResolver.setContext(topDownAnalysisContext);
importsResolver.setImportsFactory(jetImportsFactory); importsResolver.setImportsFactory(jetImportsFactory);
importsResolver.setModuleDescriptor(moduleDescriptor); importsResolver.setModuleDescriptor(moduleDescriptor);
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver); importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
@@ -227,7 +227,6 @@ public class InjectorForTopDownAnalyzerBasic {
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver); declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
declarationResolver.setTrace(bindingTrace); declarationResolver.setTrace(bindingTrace);
importsResolver.setContext(topDownAnalysisContext);
importsResolver.setImportsFactory(jetImportsFactory); importsResolver.setImportsFactory(jetImportsFactory);
importsResolver.setModuleDescriptor(moduleDescriptor); importsResolver.setModuleDescriptor(moduleDescriptor);
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver); importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
@@ -90,7 +90,7 @@ public class DeclarationResolver {
resolveAnnotationStubsOnClassesAndConstructors(c); resolveAnnotationStubsOnClassesAndConstructors(c);
resolveFunctionAndPropertyHeaders(c); resolveFunctionAndPropertyHeaders(c);
createFunctionsForDataClasses(c); createFunctionsForDataClasses(c);
importsResolver.processMembersImports(); importsResolver.processMembersImports(c);
checkRedeclarationsInPackages(c); checkRedeclarationsInPackages(c);
checkRedeclarationsInInnerClassNames(c); checkRedeclarationsInInnerClassNames(c);
} }
@@ -35,8 +35,6 @@ import static org.jetbrains.jet.lang.diagnostics.Errors.*;
import static org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver.LookupMode; import static org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver.LookupMode;
public class ImportsResolver { public class ImportsResolver {
@NotNull
private TopDownAnalysisContext context;
@NotNull @NotNull
private ModuleDescriptor moduleDescriptor; private ModuleDescriptor moduleDescriptor;
@NotNull @NotNull
@@ -46,11 +44,6 @@ public class ImportsResolver {
@NotNull @NotNull
private JetImportsFactory importsFactory; private JetImportsFactory importsFactory;
@Inject
public void setContext(@NotNull TopDownAnalysisContext context) {
this.context = context;
}
@Inject @Inject
public void setModuleDescriptor(@NotNull ModuleDescriptor moduleDescriptor) { public void setModuleDescriptor(@NotNull ModuleDescriptor moduleDescriptor) {
this.moduleDescriptor = moduleDescriptor; this.moduleDescriptor = moduleDescriptor;
@@ -71,21 +64,21 @@ public class ImportsResolver {
this.importsFactory = importsFactory; this.importsFactory = importsFactory;
} }
public void processTypeImports() { public void processTypeImports(@NotNull TopDownAnalysisContext c) {
processImports(LookupMode.ONLY_CLASSES); processImports(c, LookupMode.ONLY_CLASSES);
} }
public void processMembersImports() { public void processMembersImports(@NotNull TopDownAnalysisContext c) {
processImports(LookupMode.EVERYTHING); processImports(c, LookupMode.EVERYTHING);
} }
private void processImports(@NotNull LookupMode lookupMode) { private void processImports(@NotNull TopDownAnalysisContext c, @NotNull LookupMode lookupMode) {
for (JetFile file : context.getPackageFragments().keySet()) { for (JetFile file : c.getPackageFragments().keySet()) {
WritableScope fileScope = context.getFileScopes().get(file); WritableScope fileScope = c.getFileScopes().get(file);
processImportsInFile(lookupMode, fileScope, Lists.newArrayList(file.getImportDirectives()), JetPsiUtil.getFQName(file).isRoot()); processImportsInFile(lookupMode, fileScope, Lists.newArrayList(file.getImportDirectives()), JetPsiUtil.getFQName(file).isRoot());
} }
for (JetScript script : context.getScripts().keySet()) { for (JetScript script : c.getScripts().keySet()) {
WritableScope scriptScope = context.getScriptScopes().get(script); WritableScope scriptScope = c.getScriptScopes().get(script);
processImportsInFile(lookupMode, scriptScope, script.getImportDirectives(), true); 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 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) resolveTypesInClassHeaders(); // Generic bounds and types in supertype lists (no expressions or constructor resolution)
@@ -227,7 +227,6 @@ public class InjectorForTopDownAnalyzerForJs {
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver); declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
declarationResolver.setTrace(bindingTrace); declarationResolver.setTrace(bindingTrace);
importsResolver.setContext(topDownAnalysisContext);
importsResolver.setImportsFactory(jetImportsFactory); importsResolver.setImportsFactory(jetImportsFactory);
importsResolver.setModuleDescriptor(moduleDescriptor); importsResolver.setModuleDescriptor(moduleDescriptor);
importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver); importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);