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.ModuleDescriptor; 024 import org.jetbrains.kotlin.builtins.KotlinBuiltIns; 025 import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap; 026 import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider; 027 import org.jetbrains.kotlin.types.DynamicTypesSettings; 028 import org.jetbrains.kotlin.types.expressions.LocalClassDescriptorManager; 029 import org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer; 030 import org.jetbrains.kotlin.resolve.lazy.NoTopLevelDescriptorProvider; 031 import org.jetbrains.kotlin.resolve.lazy.NoFileScopeProvider; 032 import org.jetbrains.kotlin.types.expressions.DeclarationScopeProviderForLocalClassifierAnalyzer; 033 import org.jetbrains.kotlin.types.expressions.LocalLazyDeclarationResolver; 034 import org.jetbrains.kotlin.resolve.BodyResolver; 035 import org.jetbrains.kotlin.resolve.AnnotationResolver; 036 import org.jetbrains.kotlin.resolve.calls.CallResolver; 037 import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver; 038 import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices; 039 import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents; 040 import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils; 041 import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils; 042 import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker; 043 import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer; 044 import org.jetbrains.kotlin.resolve.DescriptorResolver; 045 import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver; 046 import org.jetbrains.kotlin.resolve.TypeResolver; 047 import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver; 048 import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; 049 import org.jetbrains.kotlin.context.LazinessToken; 050 import org.jetbrains.kotlin.types.reflect.ReflectionTypes; 051 import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver; 052 import org.jetbrains.kotlin.resolve.StatementFilter; 053 import org.jetbrains.kotlin.resolve.calls.CallCompleter; 054 import org.jetbrains.kotlin.resolve.calls.CandidateResolver; 055 import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer; 056 import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer; 057 import org.jetbrains.kotlin.resolve.DeclarationsChecker; 058 import org.jetbrains.kotlin.resolve.ModifiersChecker; 059 import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension; 060 import org.jetbrains.kotlin.resolve.ScriptBodyResolver; 061 import org.jetbrains.kotlin.resolve.DeclarationResolver; 062 import org.jetbrains.kotlin.resolve.OverloadResolver; 063 import org.jetbrains.kotlin.resolve.OverrideResolver; 064 import org.jetbrains.kotlin.resolve.varianceChecker.VarianceChecker; 065 import org.jetbrains.annotations.NotNull; 066 import javax.annotation.PreDestroy; 067 068 /* This file is generated by org.jetbrains.kotlin.generators.injectors.InjectorsPackage. DO NOT EDIT! */ 069 @SuppressWarnings("all") 070 public class InjectorForLazyLocalClassifierAnalyzer { 071 072 private final Project project; 073 private final GlobalContext globalContext; 074 private final StorageManager storageManager; 075 private final BindingTrace bindingTrace; 076 private final ModuleDescriptor module; 077 private final KotlinBuiltIns kotlinBuiltIns; 078 private final PlatformToKotlinClassMap platformToKotlinClassMap; 079 private final AdditionalCheckerProvider additionalCheckerProvider; 080 private final DynamicTypesSettings dynamicTypesSettings; 081 private final LocalClassDescriptorManager localClassDescriptorManager; 082 private final LazyTopDownAnalyzer lazyTopDownAnalyzer; 083 private final NoTopLevelDescriptorProvider noTopLevelDescriptorProvider; 084 private final NoFileScopeProvider noFileScopeProvider; 085 private final DeclarationScopeProviderForLocalClassifierAnalyzer declarationScopeProviderForLocalClassifierAnalyzer; 086 private final LocalLazyDeclarationResolver localLazyDeclarationResolver; 087 private final BodyResolver bodyResolver; 088 private final AnnotationResolver annotationResolver; 089 private final CallResolver callResolver; 090 private final ArgumentTypeResolver argumentTypeResolver; 091 private final ExpressionTypingServices expressionTypingServices; 092 private final ExpressionTypingComponents expressionTypingComponents; 093 private final ControlStructureTypingUtils controlStructureTypingUtils; 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 ControlFlowAnalyzer controlFlowAnalyzer; 110 private final DeclarationsChecker declarationsChecker; 111 private final ModifiersChecker modifiersChecker; 112 private final FunctionAnalyzerExtension functionAnalyzerExtension; 113 private final ScriptBodyResolver scriptBodyResolver; 114 private final DeclarationResolver declarationResolver; 115 private final OverloadResolver overloadResolver; 116 private final OverrideResolver overrideResolver; 117 private final VarianceChecker varianceChecker; 118 119 public InjectorForLazyLocalClassifierAnalyzer( 120 @NotNull Project project, 121 @NotNull GlobalContext globalContext, 122 @NotNull BindingTrace bindingTrace, 123 @NotNull ModuleDescriptor module, 124 @NotNull AdditionalCheckerProvider additionalCheckerProvider, 125 @NotNull DynamicTypesSettings dynamicTypesSettings, 126 @NotNull LocalClassDescriptorManager localClassDescriptorManager 127 ) { 128 this.project = project; 129 this.globalContext = globalContext; 130 this.storageManager = globalContext.getStorageManager(); 131 this.bindingTrace = bindingTrace; 132 this.module = module; 133 this.kotlinBuiltIns = module.getBuiltIns(); 134 this.platformToKotlinClassMap = module.getPlatformToKotlinClassMap(); 135 this.additionalCheckerProvider = additionalCheckerProvider; 136 this.dynamicTypesSettings = dynamicTypesSettings; 137 this.localClassDescriptorManager = localClassDescriptorManager; 138 this.lazyTopDownAnalyzer = new LazyTopDownAnalyzer(); 139 this.noTopLevelDescriptorProvider = NoTopLevelDescriptorProvider.INSTANCE$; 140 this.noFileScopeProvider = NoFileScopeProvider.INSTANCE$; 141 this.localLazyDeclarationResolver = new LocalLazyDeclarationResolver(globalContext, bindingTrace, localClassDescriptorManager); 142 this.declarationScopeProviderForLocalClassifierAnalyzer = new DeclarationScopeProviderForLocalClassifierAnalyzer(localLazyDeclarationResolver, localClassDescriptorManager); 143 this.bodyResolver = new BodyResolver(); 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.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver, kotlinBuiltIns); 151 this.forLoopConventionsChecker = new ForLoopConventionsChecker(); 152 this.descriptorResolver = new DescriptorResolver(); 153 this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); 154 this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider(); 155 this.lazinessToken = new LazinessToken(); 156 this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, module, flexibleTypeCapabilitiesProvider, storageManager, lazinessToken, dynamicTypesSettings); 157 this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, typeResolver, annotationResolver); 158 this.delegatedPropertyResolver = new DelegatedPropertyResolver(); 159 this.reflectionTypes = new ReflectionTypes(module); 160 this.callExpressionResolver = new CallExpressionResolver(); 161 this.statementFilter = new StatementFilter(); 162 this.candidateResolver = new CandidateResolver(); 163 this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver); 164 this.taskPrioritizer = new TaskPrioritizer(storageManager); 165 this.controlFlowAnalyzer = new ControlFlowAnalyzer(); 166 this.declarationsChecker = new DeclarationsChecker(); 167 this.modifiersChecker = new ModifiersChecker(bindingTrace, additionalCheckerProvider); 168 this.functionAnalyzerExtension = new FunctionAnalyzerExtension(); 169 this.scriptBodyResolver = new ScriptBodyResolver(); 170 this.declarationResolver = new DeclarationResolver(); 171 this.overloadResolver = new OverloadResolver(); 172 this.overrideResolver = new OverrideResolver(); 173 this.varianceChecker = new VarianceChecker(bindingTrace); 174 175 this.lazyTopDownAnalyzer.setBodyResolver(bodyResolver); 176 this.lazyTopDownAnalyzer.setDeclarationResolver(declarationResolver); 177 this.lazyTopDownAnalyzer.setDeclarationScopeProvider(declarationScopeProviderForLocalClassifierAnalyzer); 178 this.lazyTopDownAnalyzer.setFileScopeProvider(noFileScopeProvider); 179 this.lazyTopDownAnalyzer.setLazyDeclarationResolver(localLazyDeclarationResolver); 180 this.lazyTopDownAnalyzer.setModuleDescriptor(module); 181 this.lazyTopDownAnalyzer.setOverloadResolver(overloadResolver); 182 this.lazyTopDownAnalyzer.setOverrideResolver(overrideResolver); 183 this.lazyTopDownAnalyzer.setTopLevelDescriptorProvider(noTopLevelDescriptorProvider); 184 this.lazyTopDownAnalyzer.setTrace(bindingTrace); 185 this.lazyTopDownAnalyzer.setVarianceChecker(varianceChecker); 186 187 declarationScopeProviderForLocalClassifierAnalyzer.setFileScopeProvider(noFileScopeProvider); 188 189 localLazyDeclarationResolver.setDeclarationScopeProvider(declarationScopeProviderForLocalClassifierAnalyzer); 190 localLazyDeclarationResolver.setTopLevelDescriptorProvider(noTopLevelDescriptorProvider); 191 192 bodyResolver.setAnnotationResolver(annotationResolver); 193 bodyResolver.setCallResolver(callResolver); 194 bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer); 195 bodyResolver.setDeclarationsChecker(declarationsChecker); 196 bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 197 bodyResolver.setExpressionTypingServices(expressionTypingServices); 198 bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension); 199 bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver); 200 bodyResolver.setTrace(bindingTrace); 201 202 annotationResolver.setCallResolver(callResolver); 203 annotationResolver.setStorageManager(storageManager); 204 annotationResolver.setTypeResolver(typeResolver); 205 206 callResolver.setArgumentTypeResolver(argumentTypeResolver); 207 callResolver.setCallCompleter(callCompleter); 208 callResolver.setCandidateResolver(candidateResolver); 209 callResolver.setExpressionTypingServices(expressionTypingServices); 210 callResolver.setTaskPrioritizer(taskPrioritizer); 211 callResolver.setTypeResolver(typeResolver); 212 213 argumentTypeResolver.setBuiltIns(kotlinBuiltIns); 214 argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); 215 argumentTypeResolver.setTypeResolver(typeResolver); 216 217 expressionTypingServices.setAnnotationResolver(annotationResolver); 218 expressionTypingServices.setBuiltIns(kotlinBuiltIns); 219 expressionTypingServices.setCallExpressionResolver(callExpressionResolver); 220 expressionTypingServices.setCallResolver(callResolver); 221 expressionTypingServices.setDescriptorResolver(descriptorResolver); 222 expressionTypingServices.setProject(project); 223 expressionTypingServices.setStatementFilter(statementFilter); 224 expressionTypingServices.setTypeResolver(typeResolver); 225 226 expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); 227 expressionTypingComponents.setBuiltIns(kotlinBuiltIns); 228 expressionTypingComponents.setCallResolver(callResolver); 229 expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); 230 expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); 231 expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); 232 expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); 233 expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); 234 expressionTypingComponents.setGlobalContext(globalContext); 235 expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer); 236 expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap); 237 expressionTypingComponents.setReflectionTypes(reflectionTypes); 238 239 forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns); 240 forLoopConventionsChecker.setExpressionTypingServices(expressionTypingServices); 241 forLoopConventionsChecker.setExpressionTypingUtils(expressionTypingUtils); 242 forLoopConventionsChecker.setProject(project); 243 244 descriptorResolver.setAnnotationResolver(annotationResolver); 245 descriptorResolver.setBuiltIns(kotlinBuiltIns); 246 descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 247 descriptorResolver.setExpressionTypingServices(expressionTypingServices); 248 descriptorResolver.setStorageManager(storageManager); 249 descriptorResolver.setTypeResolver(typeResolver); 250 251 delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns); 252 delegatedPropertyResolver.setCallResolver(callResolver); 253 delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); 254 255 callExpressionResolver.setExpressionTypingServices(expressionTypingServices); 256 257 candidateResolver.setArgumentTypeResolver(argumentTypeResolver); 258 259 controlFlowAnalyzer.setTrace(bindingTrace); 260 261 declarationsChecker.setDescriptorResolver(descriptorResolver); 262 declarationsChecker.setModifiersChecker(modifiersChecker); 263 declarationsChecker.setTrace(bindingTrace); 264 265 functionAnalyzerExtension.setTrace(bindingTrace); 266 267 scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); 268 269 declarationResolver.setAnnotationResolver(annotationResolver); 270 declarationResolver.setTrace(bindingTrace); 271 272 overloadResolver.setTrace(bindingTrace); 273 274 overrideResolver.setTrace(bindingTrace); 275 276 } 277 278 @PreDestroy 279 public void destroy() { 280 } 281 282 public LazyTopDownAnalyzer getLazyTopDownAnalyzer() { 283 return this.lazyTopDownAnalyzer; 284 } 285 286 }