Do not inject TopDownAnalysisContext into ImportsResolver
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user