Deterministic order of setter calls

This commit is contained in:
Andrey Breslav
2012-03-13 20:00:54 +04:00
parent 93fcd7d1f2
commit c6e54b133c
4 changed files with 76 additions and 54 deletions
@@ -17,16 +17,15 @@
package org.jetbrains.jet.di;
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.resolve.TypeResolver;
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
import org.jetbrains.jet.lang.resolve.calls.OverloadingConflictResolver;
import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
/* This file is generated by org.jetbrains.jet.di.InjectorGenerator. DO NOT EDIT! */
/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */
public class InjectorForMacros {
private ExpressionTypingServices expressionTypingServices;
@@ -37,31 +36,31 @@ public class InjectorForMacros {
) {
this.expressionTypingServices = new ExpressionTypingServices();
this.project = project;
DescriptorResolver descriptorResolver = new DescriptorResolver();
TypeResolver typeResolver = new TypeResolver();
AnnotationResolver annotationResolver = new AnnotationResolver();
CallResolver callResolver = new CallResolver();
DescriptorResolver descriptorResolver = new DescriptorResolver();
AnnotationResolver annotationResolver = new AnnotationResolver();
TypeResolver typeResolver = new TypeResolver();
OverloadingConflictResolver overloadingConflictResolver = new OverloadingConflictResolver();
this.expressionTypingServices.setDescriptorResolver(descriptorResolver);
this.expressionTypingServices.setCallResolver(callResolver);
this.expressionTypingServices.setTypeResolver(typeResolver);
this.expressionTypingServices.setDescriptorResolver(descriptorResolver);
this.expressionTypingServices.setProject(project);
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
descriptorResolver.setTypeResolver(typeResolver);
descriptorResolver.setAnnotationResolver(annotationResolver);
typeResolver.setDescriptorResolver(descriptorResolver);
typeResolver.setAnnotationResolver(annotationResolver);
annotationResolver.setExpressionTypingServices(expressionTypingServices);
annotationResolver.setCallResolver(callResolver);
this.expressionTypingServices.setTypeResolver(typeResolver);
callResolver.setDescriptorResolver(descriptorResolver);
callResolver.setExpressionTypingServices(expressionTypingServices);
callResolver.setTypeResolver(typeResolver);
callResolver.setOverloadingConflictResolver(overloadingConflictResolver);
callResolver.setTypeResolver(typeResolver);
descriptorResolver.setAnnotationResolver(annotationResolver);
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
descriptorResolver.setTypeResolver(typeResolver);
annotationResolver.setCallResolver(callResolver);
annotationResolver.setExpressionTypingServices(expressionTypingServices);
typeResolver.setAnnotationResolver(annotationResolver);
typeResolver.setDescriptorResolver(descriptorResolver);
}
@@ -17,15 +17,32 @@
package org.jetbrains.jet.di;
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
import org.jetbrains.jet.lang.resolve.BodyResolver;
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
import org.jetbrains.jet.lang.resolve.*;
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
import org.jetbrains.jet.lang.resolve.calls.OverloadingConflictResolver;
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
import org.jetbrains.jet.lang.resolve.TypeResolver;
import org.jetbrains.jet.lang.resolve.ImportsResolver;
import org.jetbrains.jet.lang.resolve.DelegationResolver;
import org.jetbrains.jet.lang.resolve.OverloadResolver;
import org.jetbrains.jet.lang.resolve.OverrideResolver;
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
import com.intellij.openapi.project.Project;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
import org.jetbrains.jet.lang.ModuleConfiguration;
import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory;
/* This file is generated by org.jetbrains.jet.di.InjectorGenerator. DO NOT EDIT! */
/* This file is generated by org.jetbrains.jet.di.AllInjectorsGenerator. DO NOT EDIT! */
public class InjectorForTopDownAnalyzer {
private TopDownAnalyzer topDownAnalyzer;
@@ -53,68 +70,68 @@ public class InjectorForTopDownAnalyzer {
DeclarationResolver declarationResolver = new DeclarationResolver();
AnnotationResolver annotationResolver = new AnnotationResolver();
CallResolver callResolver = new CallResolver();
TypeResolver typeResolver = new TypeResolver();
OverloadingConflictResolver overloadingConflictResolver = new OverloadingConflictResolver();
TypeResolver typeResolver = new TypeResolver();
ImportsResolver importsResolver = new ImportsResolver();
TypeHierarchyResolver typeHierarchyResolver = new TypeHierarchyResolver();
DelegationResolver delegationResolver = new DelegationResolver();
OverrideResolver overrideResolver = new OverrideResolver();
OverloadResolver overloadResolver = new OverloadResolver();
OverrideResolver overrideResolver = new OverrideResolver();
TypeHierarchyResolver typeHierarchyResolver = new TypeHierarchyResolver();
this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
this.topDownAnalyzer.setDelegationResolver(delegationResolver);
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
this.topDownAnalyzer.setOverloadResolver(overloadResolver);
this.topDownAnalyzer.setOverrideResolver(overrideResolver);
this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
this.bodyResolver.setCallResolver(callResolver);
this.bodyResolver.setContext(topDownAnalysisContext);
this.bodyResolver.setDescriptorResolver(descriptorResolver);
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
this.bodyResolver.setCallResolver(callResolver);
this.controlFlowAnalyzer.setContext(topDownAnalysisContext);
this.controlFlowAnalyzer.setFlowDataTraceFactory(jetControlFlowDataTraceFactory);
this.declarationsChecker.setContext(topDownAnalysisContext);
this.descriptorResolver.setAnnotationResolver(annotationResolver);
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
this.descriptorResolver.setTypeResolver(typeResolver);
this.descriptorResolver.setAnnotationResolver(annotationResolver);
this.expressionTypingServices.setDescriptorResolver(descriptorResolver);
this.expressionTypingServices.setCallResolver(callResolver);
this.expressionTypingServices.setTypeResolver(typeResolver);
this.expressionTypingServices.setDescriptorResolver(descriptorResolver);
this.expressionTypingServices.setProject(project);
this.expressionTypingServices.setTypeResolver(typeResolver);
declarationResolver.setAnnotationResolver(annotationResolver);
declarationResolver.setContext(topDownAnalysisContext);
declarationResolver.setDescriptorResolver(descriptorResolver);
declarationResolver.setAnnotationResolver(annotationResolver);
declarationResolver.setImportsResolver(importsResolver);
annotationResolver.setExpressionTypingServices(expressionTypingServices);
annotationResolver.setCallResolver(callResolver);
annotationResolver.setExpressionTypingServices(expressionTypingServices);
callResolver.setDescriptorResolver(descriptorResolver);
callResolver.setExpressionTypingServices(expressionTypingServices);
callResolver.setTypeResolver(typeResolver);
callResolver.setOverloadingConflictResolver(overloadingConflictResolver);
callResolver.setTypeResolver(typeResolver);
typeResolver.setDescriptorResolver(descriptorResolver);
typeResolver.setAnnotationResolver(annotationResolver);
typeResolver.setDescriptorResolver(descriptorResolver);
importsResolver.setContext(topDownAnalysisContext);
importsResolver.setConfiguration(moduleConfiguration);
typeHierarchyResolver.setContext(topDownAnalysisContext);
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
typeHierarchyResolver.setImportsResolver(importsResolver);
typeHierarchyResolver.setConfiguration(moduleConfiguration);
importsResolver.setContext(topDownAnalysisContext);
delegationResolver.setContext(topDownAnalysisContext);
overloadResolver.setContext(topDownAnalysisContext);
overrideResolver.setContext(topDownAnalysisContext);
overloadResolver.setContext(topDownAnalysisContext);
typeHierarchyResolver.setConfiguration(moduleConfiguration);
typeHierarchyResolver.setContext(topDownAnalysisContext);
typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
typeHierarchyResolver.setImportsResolver(importsResolver);
}