move trivial method from TopDownAnalyzer to BodyResolver
This commit is contained in:
+2
-3
@@ -132,11 +132,8 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
|
||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||
this.topDownAnalyzer.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||
this.topDownAnalyzer.setDeclarationsChecker(declarationsChecker);
|
||||
this.topDownAnalyzer.setDelegationResolver(delegationResolver);
|
||||
this.topDownAnalyzer.setDependencyClassByQualifiedNameResolver(javaDescriptorResolver);
|
||||
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
||||
this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
|
||||
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
||||
@@ -148,6 +145,8 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
|
||||
this.bodyResolver.setCallResolver(callResolver);
|
||||
this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
this.bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||
this.bodyResolver.setDescriptorResolver(descriptorResolver);
|
||||
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.bodyResolver.setScriptResolver(scriptResolver);
|
||||
|
||||
+1
-1
@@ -152,7 +152,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
|
||||
new ObservableBindingTrace(traceContext), owner, compilerDependencies);
|
||||
|
||||
try {
|
||||
injector.getTopDownAnalyzer().doProcessForBodies(bodiesResolveContext);
|
||||
injector.getBodyResolver().resolveBodies(bodiesResolveContext);
|
||||
return AnalyzeExhaust.success(traceContext.getBindingContext(), JetStandardLibrary.getInstance());
|
||||
} finally {
|
||||
injector.destroy();
|
||||
|
||||
@@ -117,11 +117,8 @@ public class InjectorForTopDownAnalyzerBasic {
|
||||
|
||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||
this.topDownAnalyzer.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||
this.topDownAnalyzer.setDeclarationsChecker(declarationsChecker);
|
||||
this.topDownAnalyzer.setDelegationResolver(delegationResolver);
|
||||
this.topDownAnalyzer.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
|
||||
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
||||
this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
|
||||
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
||||
@@ -133,6 +130,8 @@ public class InjectorForTopDownAnalyzerBasic {
|
||||
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
|
||||
this.bodyResolver.setCallResolver(callResolver);
|
||||
this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
this.bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||
this.bodyResolver.setDescriptorResolver(descriptorResolver);
|
||||
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.bodyResolver.setScriptResolver(scriptResolver);
|
||||
|
||||
@@ -122,6 +122,10 @@ public class BodyResolver {
|
||||
private CallResolver callResolver;
|
||||
@NotNull
|
||||
private ObservableBindingTrace trace;
|
||||
@NotNull
|
||||
private ControlFlowAnalyzer controlFlowAnalyzer;
|
||||
@NotNull
|
||||
private DeclarationsChecker declarationsChecker;
|
||||
|
||||
@Inject
|
||||
public void setTopDownAnalysisParameters(@NotNull TopDownAnalysisParameters topDownAnalysisParameters) {
|
||||
@@ -153,7 +157,18 @@ public class BodyResolver {
|
||||
this.trace = new ObservableBindingTrace(trace);
|
||||
}
|
||||
|
||||
public void resolveBehaviorDeclarationBodies(@NotNull BodiesResolveContext bodiesResolveContext) {
|
||||
@Inject
|
||||
public void setControlFlowAnalyzer(@NotNull ControlFlowAnalyzer controlFlowAnalyzer) {
|
||||
this.controlFlowAnalyzer = controlFlowAnalyzer;
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setDeclarationsChecker(@NotNull DeclarationsChecker declarationsChecker) {
|
||||
this.declarationsChecker = declarationsChecker;
|
||||
}
|
||||
|
||||
|
||||
private void resolveBehaviorDeclarationBodies(@NotNull BodiesResolveContext bodiesResolveContext) {
|
||||
// Initialize context
|
||||
context = bodiesResolveContext;
|
||||
|
||||
@@ -174,6 +189,13 @@ public class BodyResolver {
|
||||
}
|
||||
}
|
||||
|
||||
public void resolveBodies(@NotNull BodiesResolveContext bodiesResolveContext) {
|
||||
resolveBehaviorDeclarationBodies(bodiesResolveContext);
|
||||
controlFlowAnalyzer.process(bodiesResolveContext);
|
||||
declarationsChecker.process(bodiesResolveContext);
|
||||
|
||||
}
|
||||
|
||||
private void resolveDelegationSpecifierLists() {
|
||||
// TODO : Make sure the same thing is not initialized twice
|
||||
for (Map.Entry<JetClass, MutableClassDescriptor> entry : context.getClasses().entrySet()) {
|
||||
|
||||
@@ -24,7 +24,6 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerBasic;
|
||||
import org.jetbrains.jet.lang.ModuleConfiguration;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetDeclaration;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.JetObjectDeclaration;
|
||||
@@ -34,10 +33,7 @@ import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScope;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl;
|
||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolver;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
import org.jetbrains.jet.lang.types.TypeUtils;
|
||||
import org.jetbrains.jet.lang.types.lang.JetStandardClasses;
|
||||
import org.jetbrains.jet.lang.types.ref.JetTypeName;
|
||||
|
||||
import javax.inject.Inject;
|
||||
import java.util.ArrayList;
|
||||
@@ -71,11 +67,7 @@ public class TopDownAnalyzer {
|
||||
@NotNull
|
||||
private NamespaceFactoryImpl namespaceFactory;
|
||||
@NotNull
|
||||
private DependencyClassByQualifiedNameResolver dependencyClassByQualifiedNameResolver;
|
||||
|
||||
private BodyResolver bodyResolver;
|
||||
private ControlFlowAnalyzer controlFlowAnalyzer;
|
||||
private DeclarationsChecker declarationsChecker;
|
||||
|
||||
@Inject
|
||||
public void setDeclarationResolver(@NotNull DeclarationResolver declarationResolver) {
|
||||
@@ -128,24 +120,10 @@ public class TopDownAnalyzer {
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setBodyResolver(BodyResolver bodyResolver) {
|
||||
public void setBodyResolver(@NotNull BodyResolver bodyResolver) {
|
||||
this.bodyResolver = bodyResolver;
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setControlFlowAnalyzer(ControlFlowAnalyzer controlFlowAnalyzer) {
|
||||
this.controlFlowAnalyzer = controlFlowAnalyzer;
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setDeclarationsChecker(DeclarationsChecker declarationsChecker) {
|
||||
this.declarationsChecker = declarationsChecker;
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setDependencyClassByQualifiedNameResolver(@NotNull DependencyClassByQualifiedNameResolver dependencyClassByQualifiedNameResolver) {
|
||||
this.dependencyClassByQualifiedNameResolver = dependencyClassByQualifiedNameResolver;
|
||||
}
|
||||
|
||||
|
||||
public void doProcess(
|
||||
@@ -165,19 +143,13 @@ public class TopDownAnalyzer {
|
||||
overloadResolver.process();
|
||||
|
||||
if (!topDownAnalysisParameters.isAnalyzingBootstrapLibrary()) {
|
||||
doProcessForBodies(context);
|
||||
bodyResolver.resolveBodies(context);
|
||||
}
|
||||
|
||||
context.debug("Exit");
|
||||
context.printDebugOutput(System.out);
|
||||
}
|
||||
|
||||
public void doProcessForBodies(BodiesResolveContext bodiesResolveContext) {
|
||||
bodyResolver.resolveBehaviorDeclarationBodies(bodiesResolveContext);
|
||||
controlFlowAnalyzer.process(bodiesResolveContext);
|
||||
declarationsChecker.process(bodiesResolveContext);
|
||||
}
|
||||
|
||||
private void lockScopes() {
|
||||
for (MutableClassDescriptor mutableClassDescriptor : context.getClasses().values()) {
|
||||
mutableClassDescriptor.lockScopes();
|
||||
|
||||
@@ -117,11 +117,8 @@ public class InjectorForTopDownAnalyzerForJs {
|
||||
|
||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||
this.topDownAnalyzer.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
|
||||
this.topDownAnalyzer.setDeclarationsChecker(declarationsChecker);
|
||||
this.topDownAnalyzer.setDelegationResolver(delegationResolver);
|
||||
this.topDownAnalyzer.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
|
||||
this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
|
||||
this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
|
||||
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
|
||||
@@ -133,6 +130,8 @@ public class InjectorForTopDownAnalyzerForJs {
|
||||
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
|
||||
this.bodyResolver.setCallResolver(callResolver);
|
||||
this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
this.bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||
this.bodyResolver.setDescriptorResolver(descriptorResolver);
|
||||
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.bodyResolver.setScriptResolver(scriptResolver);
|
||||
|
||||
@@ -124,7 +124,7 @@ public final class AnalyzerFacadeForJS {
|
||||
|
||||
try {
|
||||
bodiesResolveContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
injector.getTopDownAnalyzer().doProcessForBodies(bodiesResolveContext);
|
||||
injector.getBodyResolver().resolveBodies(bodiesResolveContext);
|
||||
return AnalyzeExhaust.success(traceContext.getBindingContext(), JetStandardLibrary.getInstance());
|
||||
}
|
||||
finally {
|
||||
|
||||
Reference in New Issue
Block a user