001 /* 002 * Copyright 2010-2015 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.kotlin.di; 018 019 import com.intellij.openapi.project.Project; 020 import org.jetbrains.kotlin.context.GlobalContext; 021 import org.jetbrains.kotlin.storage.StorageManager; 022 import org.jetbrains.kotlin.resolve.BindingTrace; 023 import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl; 024 import org.jetbrains.kotlin.builtins.KotlinBuiltIns; 025 import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap; 026 import org.jetbrains.kotlin.resolve.lazy.declarations.DeclarationProviderFactory; 027 import org.jetbrains.kotlin.resolve.lazy.ResolveSession; 028 import org.jetbrains.kotlin.resolve.lazy.ScopeProvider; 029 import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzerForTopLevel; 030 import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider.DefaultProvider; 031 import org.jetbrains.kotlin.resolve.AnnotationResolver; 032 import org.jetbrains.kotlin.resolve.calls.CallResolver; 033 import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver; 034 import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices; 035 import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents; 036 import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils; 037 import org.jetbrains.kotlin.types.DynamicTypesSettings; 038 import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils; 039 import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker; 040 import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer; 041 import org.jetbrains.kotlin.resolve.DescriptorResolver; 042 import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver; 043 import org.jetbrains.kotlin.resolve.TypeResolver; 044 import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver; 045 import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; 046 import org.jetbrains.kotlin.context.LazinessToken; 047 import org.jetbrains.kotlin.types.reflect.ReflectionTypes; 048 import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver; 049 import org.jetbrains.kotlin.resolve.StatementFilter; 050 import org.jetbrains.kotlin.resolve.calls.CallCompleter; 051 import org.jetbrains.kotlin.resolve.calls.CandidateResolver; 052 import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer; 053 import org.jetbrains.kotlin.psi.JetImportsFactory; 054 import org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver; 055 import org.jetbrains.kotlin.resolve.lazy.DeclarationScopeProviderImpl; 056 import org.jetbrains.kotlin.resolve.ScriptBodyResolver; 057 import org.jetbrains.kotlin.resolve.lazy.ScopeProvider.AdditionalFileScopeProvider; 058 import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer; 059 import org.jetbrains.kotlin.resolve.BodyResolver; 060 import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer; 061 import org.jetbrains.kotlin.resolve.DeclarationsChecker; 062 import org.jetbrains.kotlin.resolve.ModifiersChecker; 063 import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension; 064 import org.jetbrains.kotlin.resolve.DeclarationResolver; 065 import org.jetbrains.kotlin.resolve.OverloadResolver; 066 import org.jetbrains.kotlin.resolve.OverrideResolver; 067 import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker; 068 import org.jetbrains.annotations.NotNull; 069 import javax.annotation.PreDestroy; 070 071 /* This file is generated by org.jetbrains.kotlin.generators.injectors.InjectorsPackage. DO NOT EDIT! */ 072 @SuppressWarnings("all") 073 public class InjectorForLazyTopDownAnalyzerBasic { 074 075 private final Project project; 076 private final GlobalContext globalContext; 077 private final StorageManager storageManager; 078 private final BindingTrace bindingTrace; 079 private final ModuleDescriptorImpl module; 080 private final KotlinBuiltIns kotlinBuiltIns; 081 private final PlatformToKotlinClassMap platformToKotlinClassMap; 082 private final DeclarationProviderFactory declarationProviderFactory; 083 private final ResolveSession resolveSession; 084 private final ScopeProvider scopeProvider; 085 private final LazyTopDownAnalyzerForTopLevel lazyTopDownAnalyzerForTopLevel; 086 private final DefaultProvider defaultProvider; 087 private final AnnotationResolver annotationResolver; 088 private final CallResolver callResolver; 089 private final ArgumentTypeResolver argumentTypeResolver; 090 private final ExpressionTypingServices expressionTypingServices; 091 private final ExpressionTypingComponents expressionTypingComponents; 092 private final ControlStructureTypingUtils controlStructureTypingUtils; 093 private final DynamicTypesSettings dynamicTypesSettings; 094 private final ExpressionTypingUtils expressionTypingUtils; 095 private final ForLoopConventionsChecker forLoopConventionsChecker; 096 private final LocalClassifierAnalyzer localClassifierAnalyzer; 097 private final DescriptorResolver descriptorResolver; 098 private final DelegatedPropertyResolver delegatedPropertyResolver; 099 private final TypeResolver typeResolver; 100 private final QualifiedExpressionResolver qualifiedExpressionResolver; 101 private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider; 102 private final LazinessToken lazinessToken; 103 private final ReflectionTypes reflectionTypes; 104 private final CallExpressionResolver callExpressionResolver; 105 private final StatementFilter statementFilter; 106 private final CallCompleter callCompleter; 107 private final CandidateResolver candidateResolver; 108 private final TaskPrioritizer taskPrioritizer; 109 private final JetImportsFactory jetImportsFactory; 110 private final LazyDeclarationResolver lazyDeclarationResolver; 111 private final DeclarationScopeProviderImpl declarationScopeProvider; 112 private final ScriptBodyResolver scriptBodyResolver; 113 private final AdditionalFileScopeProvider additionalFileScopeProvider; 114 private final LazyTopDownAnalyzer lazyTopDownAnalyzer; 115 private final BodyResolver bodyResolver; 116 private final ControlFlowAnalyzer controlFlowAnalyzer; 117 private final DeclarationsChecker declarationsChecker; 118 private final ModifiersChecker modifiersChecker; 119 private final FunctionAnalyzerExtension functionAnalyzerExtension; 120 private final DeclarationResolver declarationResolver; 121 private final OverloadResolver overloadResolver; 122 private final OverrideResolver overrideResolver; 123 private final VarianceChecker varianceChecker; 124 125 public InjectorForLazyTopDownAnalyzerBasic( 126 @NotNull Project project, 127 @NotNull GlobalContext globalContext, 128 @NotNull BindingTrace bindingTrace, 129 @NotNull ModuleDescriptorImpl module, 130 @NotNull DeclarationProviderFactory declarationProviderFactory 131 ) { 132 this.project = project; 133 this.globalContext = globalContext; 134 this.storageManager = globalContext.getStorageManager(); 135 this.bindingTrace = bindingTrace; 136 this.module = module; 137 this.kotlinBuiltIns = module.getBuiltIns(); 138 this.platformToKotlinClassMap = module.getPlatformToKotlinClassMap(); 139 this.declarationProviderFactory = declarationProviderFactory; 140 this.resolveSession = new ResolveSession(project, globalContext, getModule(), declarationProviderFactory, bindingTrace); 141 this.scopeProvider = new ScopeProvider(getResolveSession()); 142 this.lazyTopDownAnalyzerForTopLevel = new LazyTopDownAnalyzerForTopLevel(); 143 this.defaultProvider = DefaultProvider.INSTANCE$; 144 this.annotationResolver = new AnnotationResolver(); 145 this.callResolver = new CallResolver(); 146 this.argumentTypeResolver = new ArgumentTypeResolver(); 147 this.expressionTypingComponents = new ExpressionTypingComponents(); 148 this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); 149 this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); 150 this.dynamicTypesSettings = new DynamicTypesSettings(); 151 this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver, kotlinBuiltIns); 152 this.forLoopConventionsChecker = new ForLoopConventionsChecker(); 153 this.descriptorResolver = new DescriptorResolver(); 154 this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); 155 this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider(); 156 this.lazinessToken = new LazinessToken(); 157 this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, getModule(), flexibleTypeCapabilitiesProvider, storageManager, lazinessToken, dynamicTypesSettings); 158 this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, typeResolver, annotationResolver); 159 this.delegatedPropertyResolver = new DelegatedPropertyResolver(); 160 this.reflectionTypes = new ReflectionTypes(getModule()); 161 this.callExpressionResolver = new CallExpressionResolver(); 162 this.statementFilter = new StatementFilter(); 163 this.candidateResolver = new CandidateResolver(); 164 this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver); 165 this.taskPrioritizer = new TaskPrioritizer(storageManager); 166 this.jetImportsFactory = new JetImportsFactory(); 167 this.lazyDeclarationResolver = new LazyDeclarationResolver(globalContext, bindingTrace); 168 this.declarationScopeProvider = new DeclarationScopeProviderImpl(lazyDeclarationResolver); 169 this.scriptBodyResolver = new ScriptBodyResolver(); 170 this.additionalFileScopeProvider = new AdditionalFileScopeProvider(); 171 this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer(); 172 this.bodyResolver = new BodyResolver(); 173 this.controlFlowAnalyzer = new ControlFlowAnalyzer(); 174 this.declarationsChecker = new DeclarationsChecker(); 175 this.modifiersChecker = new ModifiersChecker(bindingTrace, defaultProvider); 176 this.functionAnalyzerExtension = new FunctionAnalyzerExtension(); 177 this.declarationResolver = new DeclarationResolver(); 178 this.overloadResolver = new OverloadResolver(); 179 this.overrideResolver = new OverrideResolver(); 180 this.varianceChecker = new VarianceChecker(bindingTrace); 181 182 this.resolveSession.setAnnotationResolve(annotationResolver); 183 this.resolveSession.setDescriptorResolver(descriptorResolver); 184 this.resolveSession.setJetImportFactory(jetImportsFactory); 185 this.resolveSession.setLazyDeclarationResolver(lazyDeclarationResolver); 186 this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver); 187 this.resolveSession.setScopeProvider(scopeProvider); 188 this.resolveSession.setScriptBodyResolver(scriptBodyResolver); 189 this.resolveSession.setTypeResolver(typeResolver); 190 191 scopeProvider.setAdditionalFileScopesProvider(additionalFileScopeProvider); 192 scopeProvider.setDeclarationScopeProvider(declarationScopeProvider); 193 194 this.lazyTopDownAnalyzerForTopLevel.setKotlinCodeAnalyzer(resolveSession); 195 this.lazyTopDownAnalyzerForTopLevel.setLazyTopDownAnalyzer(lazyTopDownAnalyzer); 196 197 annotationResolver.setCallResolver(callResolver); 198 annotationResolver.setStorageManager(storageManager); 199 annotationResolver.setTypeResolver(typeResolver); 200 201 callResolver.setArgumentTypeResolver(argumentTypeResolver); 202 callResolver.setCallCompleter(callCompleter); 203 callResolver.setCandidateResolver(candidateResolver); 204 callResolver.setExpressionTypingServices(expressionTypingServices); 205 callResolver.setTaskPrioritizer(taskPrioritizer); 206 callResolver.setTypeResolver(typeResolver); 207 208 argumentTypeResolver.setBuiltIns(kotlinBuiltIns); 209 argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); 210 argumentTypeResolver.setTypeResolver(typeResolver); 211 212 expressionTypingServices.setAnnotationResolver(annotationResolver); 213 expressionTypingServices.setBuiltIns(kotlinBuiltIns); 214 expressionTypingServices.setCallExpressionResolver(callExpressionResolver); 215 expressionTypingServices.setCallResolver(callResolver); 216 expressionTypingServices.setDescriptorResolver(descriptorResolver); 217 expressionTypingServices.setProject(project); 218 expressionTypingServices.setStatementFilter(statementFilter); 219 expressionTypingServices.setTypeResolver(typeResolver); 220 221 expressionTypingComponents.setAdditionalCheckerProvider(defaultProvider); 222 expressionTypingComponents.setBuiltIns(kotlinBuiltIns); 223 expressionTypingComponents.setCallResolver(callResolver); 224 expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); 225 expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); 226 expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); 227 expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); 228 expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); 229 expressionTypingComponents.setGlobalContext(globalContext); 230 expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer); 231 expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap); 232 expressionTypingComponents.setReflectionTypes(reflectionTypes); 233 234 forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns); 235 forLoopConventionsChecker.setExpressionTypingServices(expressionTypingServices); 236 forLoopConventionsChecker.setExpressionTypingUtils(expressionTypingUtils); 237 forLoopConventionsChecker.setProject(project); 238 239 descriptorResolver.setAnnotationResolver(annotationResolver); 240 descriptorResolver.setBuiltIns(kotlinBuiltIns); 241 descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 242 descriptorResolver.setExpressionTypingServices(expressionTypingServices); 243 descriptorResolver.setStorageManager(storageManager); 244 descriptorResolver.setTypeResolver(typeResolver); 245 246 delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns); 247 delegatedPropertyResolver.setCallResolver(callResolver); 248 delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); 249 250 callExpressionResolver.setExpressionTypingServices(expressionTypingServices); 251 252 candidateResolver.setArgumentTypeResolver(argumentTypeResolver); 253 254 jetImportsFactory.setProject(project); 255 256 lazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProvider); 257 lazyDeclarationResolver.setTopLevelDescriptorProvider(resolveSession); 258 259 declarationScopeProvider.setFileScopeProvider(scopeProvider); 260 261 scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); 262 263 lazyTopDownAnalyzer.setBodyResolver(bodyResolver); 264 lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver); 265 lazyTopDownAnalyzer.setDeclarationScopeProvider(declarationScopeProvider); 266 lazyTopDownAnalyzer.setFileScopeProvider(scopeProvider); 267 lazyTopDownAnalyzer.setLazyDeclarationResolver(lazyDeclarationResolver); 268 lazyTopDownAnalyzer.setModuleDescriptor(module); 269 lazyTopDownAnalyzer.setOverloadResolver(overloadResolver); 270 lazyTopDownAnalyzer.setOverrideResolver(overrideResolver); 271 lazyTopDownAnalyzer.setTopLevelDescriptorProvider(resolveSession); 272 lazyTopDownAnalyzer.setTrace(bindingTrace); 273 lazyTopDownAnalyzer.setVarianceChecker(varianceChecker); 274 275 bodyResolver.setAnnotationResolver(annotationResolver); 276 bodyResolver.setCallResolver(callResolver); 277 bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer); 278 bodyResolver.setDeclarationsChecker(declarationsChecker); 279 bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 280 bodyResolver.setExpressionTypingServices(expressionTypingServices); 281 bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension); 282 bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver); 283 bodyResolver.setTrace(bindingTrace); 284 285 controlFlowAnalyzer.setTrace(bindingTrace); 286 287 declarationsChecker.setDescriptorResolver(descriptorResolver); 288 declarationsChecker.setModifiersChecker(modifiersChecker); 289 declarationsChecker.setTrace(bindingTrace); 290 291 functionAnalyzerExtension.setTrace(bindingTrace); 292 293 declarationResolver.setAnnotationResolver(annotationResolver); 294 declarationResolver.setTrace(bindingTrace); 295 296 overloadResolver.setTrace(bindingTrace); 297 298 overrideResolver.setTrace(bindingTrace); 299 300 } 301 302 @PreDestroy 303 public void destroy() { 304 } 305 306 public ModuleDescriptorImpl getModule() { 307 return this.module; 308 } 309 310 public ResolveSession getResolveSession() { 311 return this.resolveSession; 312 } 313 314 public LazyTopDownAnalyzerForTopLevel getLazyTopDownAnalyzerForTopLevel() { 315 return this.lazyTopDownAnalyzerForTopLevel; 316 } 317 318 }