001 /*
002 * Copyright 2010-2013 JetBrains s.r.o.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017 package org.jetbrains.jet.di;
018
019 import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
020 import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
021 import org.jetbrains.jet.lang.resolve.BodyResolver;
022 import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
023 import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
024 import org.jetbrains.jet.lang.resolve.DescriptorResolver;
025 import org.jetbrains.jet.lang.resolve.calls.NeedSyntheticCallResolverExtension;
026 import com.intellij.openapi.project.Project;
027 import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
028 import org.jetbrains.jet.lang.resolve.BindingTrace;
029 import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
030 import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
031 import org.jetbrains.jet.lang.resolve.NamespaceFactoryImpl;
032 import org.jetbrains.jet.lang.resolve.DeclarationResolver;
033 import org.jetbrains.jet.lang.resolve.AnnotationResolver;
034 import org.jetbrains.jet.lang.resolve.calls.CallResolver;
035 import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
036 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
037 import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
038 import org.jetbrains.jet.lang.resolve.TypeResolver;
039 import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
040 import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
041 import org.jetbrains.jet.lang.resolve.ImportsResolver;
042 import org.jetbrains.jet.lang.psi.JetImportsFactory;
043 import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
044 import org.jetbrains.jet.lang.resolve.OverloadResolver;
045 import org.jetbrains.jet.lang.resolve.OverrideResolver;
046 import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
047 import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
048 import org.jetbrains.annotations.NotNull;
049 import javax.annotation.PreDestroy;
050
051 /* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
052 public class InjectorForTopDownAnalyzerBasic {
053
054 private final TopDownAnalyzer topDownAnalyzer;
055 private final TopDownAnalysisContext topDownAnalysisContext;
056 private final BodyResolver bodyResolver;
057 private final ControlFlowAnalyzer controlFlowAnalyzer;
058 private final DeclarationsChecker declarationsChecker;
059 private final DescriptorResolver descriptorResolver;
060 private final NeedSyntheticCallResolverExtension needSyntheticCallResolverExtension;
061 private final Project project;
062 private final TopDownAnalysisParameters topDownAnalysisParameters;
063 private final BindingTrace bindingTrace;
064 private final ModuleDescriptorImpl moduleDescriptor;
065 private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
066 private final NamespaceFactoryImpl namespaceFactory;
067 private final DeclarationResolver declarationResolver;
068 private final AnnotationResolver annotationResolver;
069 private final CallResolver callResolver;
070 private final ArgumentTypeResolver argumentTypeResolver;
071 private final ExpressionTypingServices expressionTypingServices;
072 private final CallExpressionResolver callExpressionResolver;
073 private final TypeResolver typeResolver;
074 private final QualifiedExpressionResolver qualifiedExpressionResolver;
075 private final CandidateResolver candidateResolver;
076 private final ImportsResolver importsResolver;
077 private final JetImportsFactory jetImportsFactory;
078 private final ScriptHeaderResolver scriptHeaderResolver;
079 private final OverloadResolver overloadResolver;
080 private final OverrideResolver overrideResolver;
081 private final TypeHierarchyResolver typeHierarchyResolver;
082 private final ScriptBodyResolver scriptBodyResolver;
083
084 public InjectorForTopDownAnalyzerBasic(
085 @NotNull Project project,
086 @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
087 @NotNull BindingTrace bindingTrace,
088 @NotNull ModuleDescriptorImpl moduleDescriptor
089 ) {
090 this.topDownAnalyzer = new TopDownAnalyzer();
091 this.topDownAnalysisContext = new TopDownAnalysisContext();
092 this.bodyResolver = new BodyResolver();
093 this.controlFlowAnalyzer = new ControlFlowAnalyzer();
094 this.declarationsChecker = new DeclarationsChecker();
095 this.descriptorResolver = new DescriptorResolver();
096 this.needSyntheticCallResolverExtension = new NeedSyntheticCallResolverExtension();
097 this.project = project;
098 this.topDownAnalysisParameters = topDownAnalysisParameters;
099 this.bindingTrace = bindingTrace;
100 this.moduleDescriptor = moduleDescriptor;
101 this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
102 this.namespaceFactory = new NamespaceFactoryImpl();
103 this.declarationResolver = new DeclarationResolver();
104 this.annotationResolver = new AnnotationResolver();
105 this.callResolver = new CallResolver();
106 this.argumentTypeResolver = new ArgumentTypeResolver();
107 this.expressionTypingServices = new ExpressionTypingServices();
108 this.callExpressionResolver = new CallExpressionResolver();
109 this.typeResolver = new TypeResolver();
110 this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
111 this.candidateResolver = new CandidateResolver();
112 this.importsResolver = new ImportsResolver();
113 this.jetImportsFactory = new JetImportsFactory();
114 this.scriptHeaderResolver = new ScriptHeaderResolver();
115 this.overloadResolver = new OverloadResolver();
116 this.overrideResolver = new OverrideResolver();
117 this.typeHierarchyResolver = new TypeHierarchyResolver();
118 this.scriptBodyResolver = new ScriptBodyResolver();
119
120 this.topDownAnalyzer.setBodyResolver(bodyResolver);
121 this.topDownAnalyzer.setContext(topDownAnalysisContext);
122 this.topDownAnalyzer.setDeclarationResolver(declarationResolver);
123 this.topDownAnalyzer.setModuleDescriptor(moduleDescriptor);
124 this.topDownAnalyzer.setNamespaceFactory(namespaceFactory);
125 this.topDownAnalyzer.setOverloadResolver(overloadResolver);
126 this.topDownAnalyzer.setOverrideResolver(overrideResolver);
127 this.topDownAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
128 this.topDownAnalyzer.setTrace(bindingTrace);
129 this.topDownAnalyzer.setTypeHierarchyResolver(typeHierarchyResolver);
130
131 this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
132
133 this.bodyResolver.setAnnotationResolver(annotationResolver);
134 this.bodyResolver.setCallResolver(callResolver);
135 this.bodyResolver.setContext(topDownAnalysisContext);
136 this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
137 this.bodyResolver.setDeclarationsChecker(declarationsChecker);
138 this.bodyResolver.setDescriptorResolver(descriptorResolver);
139 this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
140 this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
141 this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
142 this.bodyResolver.setTrace(bindingTrace);
143
144 this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
145 this.controlFlowAnalyzer.setTrace(bindingTrace);
146
147 this.declarationsChecker.setTrace(bindingTrace);
148
149 this.descriptorResolver.setAnnotationResolver(annotationResolver);
150 this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
151 this.descriptorResolver.setTypeResolver(typeResolver);
152
153 namespaceFactory.setModuleDescriptor(moduleDescriptor);
154 namespaceFactory.setTrace(bindingTrace);
155
156 declarationResolver.setAnnotationResolver(annotationResolver);
157 declarationResolver.setContext(topDownAnalysisContext);
158 declarationResolver.setDescriptorResolver(descriptorResolver);
159 declarationResolver.setImportsResolver(importsResolver);
160 declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
161 declarationResolver.setTrace(bindingTrace);
162
163 annotationResolver.setCallResolver(callResolver);
164 annotationResolver.setExpressionTypingServices(expressionTypingServices);
165
166 callResolver.setArgumentTypeResolver(argumentTypeResolver);
167 callResolver.setCandidateResolver(candidateResolver);
168 callResolver.setExpressionTypingServices(expressionTypingServices);
169 callResolver.setExtension(needSyntheticCallResolverExtension);
170 callResolver.setTypeResolver(typeResolver);
171
172 argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
173 argumentTypeResolver.setTypeResolver(typeResolver);
174
175 expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
176 expressionTypingServices.setCallResolver(callResolver);
177 expressionTypingServices.setDescriptorResolver(descriptorResolver);
178 expressionTypingServices.setProject(project);
179 expressionTypingServices.setTypeResolver(typeResolver);
180
181 callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
182
183 typeResolver.setAnnotationResolver(annotationResolver);
184 typeResolver.setDescriptorResolver(descriptorResolver);
185 typeResolver.setModuleDescriptor(moduleDescriptor);
186 typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
187
188 candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
189
190 importsResolver.setContext(topDownAnalysisContext);
191 importsResolver.setImportsFactory(jetImportsFactory);
192 importsResolver.setModuleDescriptor(moduleDescriptor);
193 importsResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
194 importsResolver.setTrace(bindingTrace);
195
196 jetImportsFactory.setProject(project);
197
198 scriptHeaderResolver.setContext(topDownAnalysisContext);
199 scriptHeaderResolver.setDependencyClassByQualifiedNameResolver(dependencyClassByQualifiedNameResolverDummy);
200 scriptHeaderResolver.setNamespaceFactory(namespaceFactory);
201 scriptHeaderResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
202 scriptHeaderResolver.setTrace(bindingTrace);
203
204 overloadResolver.setContext(topDownAnalysisContext);
205 overloadResolver.setTrace(bindingTrace);
206
207 overrideResolver.setContext(topDownAnalysisContext);
208 overrideResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
209 overrideResolver.setTrace(bindingTrace);
210
211 typeHierarchyResolver.setContext(topDownAnalysisContext);
212 typeHierarchyResolver.setDescriptorResolver(descriptorResolver);
213 typeHierarchyResolver.setImportsResolver(importsResolver);
214 typeHierarchyResolver.setNamespaceFactory(namespaceFactory);
215 typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
216 typeHierarchyResolver.setTrace(bindingTrace);
217
218 scriptBodyResolver.setContext(topDownAnalysisContext);
219 scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
220 scriptBodyResolver.setTrace(bindingTrace);
221
222 }
223
224 @PreDestroy
225 public void destroy() {
226 }
227
228 public TopDownAnalyzer getTopDownAnalyzer() {
229 return this.topDownAnalyzer;
230 }
231
232 public TopDownAnalysisContext getTopDownAnalysisContext() {
233 return this.topDownAnalysisContext;
234 }
235
236 public BodyResolver getBodyResolver() {
237 return this.bodyResolver;
238 }
239
240 public ControlFlowAnalyzer getControlFlowAnalyzer() {
241 return this.controlFlowAnalyzer;
242 }
243
244 public DeclarationsChecker getDeclarationsChecker() {
245 return this.declarationsChecker;
246 }
247
248 public DescriptorResolver getDescriptorResolver() {
249 return this.descriptorResolver;
250 }
251
252 public Project getProject() {
253 return this.project;
254 }
255
256 public TopDownAnalysisParameters getTopDownAnalysisParameters() {
257 return this.topDownAnalysisParameters;
258 }
259
260 public BindingTrace getBindingTrace() {
261 return this.bindingTrace;
262 }
263
264 public ModuleDescriptorImpl getModuleDescriptor() {
265 return this.moduleDescriptor;
266 }
267
268 }