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