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.resolve.StatementFilter; 028 import org.jetbrains.kotlin.resolve.BodyResolver; 029 import org.jetbrains.kotlin.resolve.AnnotationResolver; 030 import org.jetbrains.kotlin.resolve.calls.CallResolver; 031 import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver; 032 import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices; 033 import org.jetbrains.kotlin.types.expressions.ExpressionTypingComponents; 034 import org.jetbrains.kotlin.types.expressions.ControlStructureTypingUtils; 035 import org.jetbrains.kotlin.types.DynamicTypesSettings; 036 import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils; 037 import org.jetbrains.kotlin.types.expressions.ForLoopConventionsChecker; 038 import org.jetbrains.kotlin.types.expressions.LocalClassifierAnalyzer; 039 import org.jetbrains.kotlin.resolve.DescriptorResolver; 040 import org.jetbrains.kotlin.resolve.DelegatedPropertyResolver; 041 import org.jetbrains.kotlin.resolve.TypeResolver; 042 import org.jetbrains.kotlin.resolve.QualifiedExpressionResolver; 043 import org.jetbrains.kotlin.resolve.TypeResolver.FlexibleTypeCapabilitiesProvider; 044 import org.jetbrains.kotlin.context.TypeLazinessToken; 045 import org.jetbrains.kotlin.resolve.FunctionDescriptorResolver; 046 import org.jetbrains.kotlin.types.reflect.ReflectionTypes; 047 import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver; 048 import org.jetbrains.kotlin.resolve.calls.CallCompleter; 049 import org.jetbrains.kotlin.resolve.calls.CandidateResolver; 050 import org.jetbrains.kotlin.resolve.calls.tasks.TaskPrioritizer; 051 import org.jetbrains.kotlin.resolve.ControlFlowAnalyzer; 052 import org.jetbrains.kotlin.resolve.DeclarationsChecker; 053 import org.jetbrains.kotlin.resolve.ModifiersChecker; 054 import org.jetbrains.kotlin.resolve.FunctionAnalyzerExtension; 055 import org.jetbrains.kotlin.resolve.ScriptBodyResolver; 056 import org.jetbrains.annotations.NotNull; 057 import javax.annotation.PreDestroy; 058 059 /* This file is generated by org.jetbrains.kotlin.generators.injectors.InjectorsPackage. DO NOT EDIT! */ 060 @SuppressWarnings("all") 061 public class InjectorForBodyResolve { 062 063 private final Project project; 064 private final GlobalContext globalContext; 065 private final StorageManager storageManager; 066 private final BindingTrace bindingTrace; 067 private final ModuleDescriptor moduleDescriptor; 068 private final KotlinBuiltIns kotlinBuiltIns; 069 private final PlatformToKotlinClassMap platformToKotlinClassMap; 070 private final AdditionalCheckerProvider additionalCheckerProvider; 071 private final StatementFilter statementFilter; 072 private final BodyResolver bodyResolver; 073 private final AnnotationResolver annotationResolver; 074 private final CallResolver callResolver; 075 private final ArgumentTypeResolver argumentTypeResolver; 076 private final ExpressionTypingServices expressionTypingServices; 077 private final ExpressionTypingComponents expressionTypingComponents; 078 private final ControlStructureTypingUtils controlStructureTypingUtils; 079 private final DynamicTypesSettings dynamicTypesSettings; 080 private final ExpressionTypingUtils expressionTypingUtils; 081 private final ForLoopConventionsChecker forLoopConventionsChecker; 082 private final LocalClassifierAnalyzer localClassifierAnalyzer; 083 private final DescriptorResolver descriptorResolver; 084 private final DelegatedPropertyResolver delegatedPropertyResolver; 085 private final TypeResolver typeResolver; 086 private final QualifiedExpressionResolver qualifiedExpressionResolver; 087 private final FlexibleTypeCapabilitiesProvider flexibleTypeCapabilitiesProvider; 088 private final TypeLazinessToken typeLazinessToken; 089 private final FunctionDescriptorResolver functionDescriptorResolver; 090 private final ReflectionTypes reflectionTypes; 091 private final CallExpressionResolver callExpressionResolver; 092 private final CallCompleter callCompleter; 093 private final CandidateResolver candidateResolver; 094 private final TaskPrioritizer taskPrioritizer; 095 private final ControlFlowAnalyzer controlFlowAnalyzer; 096 private final DeclarationsChecker declarationsChecker; 097 private final ModifiersChecker modifiersChecker; 098 private final FunctionAnalyzerExtension functionAnalyzerExtension; 099 private final ScriptBodyResolver scriptBodyResolver; 100 101 public InjectorForBodyResolve( 102 @NotNull Project project, 103 @NotNull GlobalContext globalContext, 104 @NotNull BindingTrace bindingTrace, 105 @NotNull ModuleDescriptor moduleDescriptor, 106 @NotNull AdditionalCheckerProvider additionalCheckerProvider, 107 @NotNull StatementFilter statementFilter 108 ) { 109 this.project = project; 110 this.globalContext = globalContext; 111 this.storageManager = globalContext.getStorageManager(); 112 this.bindingTrace = bindingTrace; 113 this.moduleDescriptor = moduleDescriptor; 114 this.kotlinBuiltIns = moduleDescriptor.getBuiltIns(); 115 this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap(); 116 this.additionalCheckerProvider = additionalCheckerProvider; 117 this.statementFilter = statementFilter; 118 this.bodyResolver = new BodyResolver(); 119 this.annotationResolver = new AnnotationResolver(); 120 this.callResolver = new CallResolver(); 121 this.argumentTypeResolver = new ArgumentTypeResolver(); 122 this.expressionTypingComponents = new ExpressionTypingComponents(); 123 this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); 124 this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); 125 this.dynamicTypesSettings = new DynamicTypesSettings(); 126 this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver, kotlinBuiltIns); 127 this.forLoopConventionsChecker = new ForLoopConventionsChecker(); 128 this.descriptorResolver = new DescriptorResolver(); 129 this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); 130 this.flexibleTypeCapabilitiesProvider = new FlexibleTypeCapabilitiesProvider(); 131 this.typeLazinessToken = new TypeLazinessToken(); 132 this.typeResolver = new TypeResolver(annotationResolver, qualifiedExpressionResolver, moduleDescriptor, flexibleTypeCapabilitiesProvider, storageManager, typeLazinessToken, dynamicTypesSettings); 133 this.functionDescriptorResolver = new FunctionDescriptorResolver(typeResolver, descriptorResolver, annotationResolver, storageManager, expressionTypingServices, kotlinBuiltIns); 134 this.localClassifierAnalyzer = new LocalClassifierAnalyzer(descriptorResolver, functionDescriptorResolver, typeResolver, annotationResolver); 135 this.delegatedPropertyResolver = new DelegatedPropertyResolver(); 136 this.reflectionTypes = new ReflectionTypes(moduleDescriptor); 137 this.callExpressionResolver = new CallExpressionResolver(); 138 this.candidateResolver = new CandidateResolver(); 139 this.callCompleter = new CallCompleter(argumentTypeResolver, candidateResolver); 140 this.taskPrioritizer = new TaskPrioritizer(storageManager); 141 this.controlFlowAnalyzer = new ControlFlowAnalyzer(); 142 this.declarationsChecker = new DeclarationsChecker(); 143 this.modifiersChecker = new ModifiersChecker(bindingTrace, additionalCheckerProvider); 144 this.functionAnalyzerExtension = new FunctionAnalyzerExtension(); 145 this.scriptBodyResolver = new ScriptBodyResolver(); 146 147 this.bodyResolver.setAnnotationResolver(annotationResolver); 148 this.bodyResolver.setCallResolver(callResolver); 149 this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer); 150 this.bodyResolver.setDeclarationsChecker(declarationsChecker); 151 this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 152 this.bodyResolver.setExpressionTypingServices(expressionTypingServices); 153 this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension); 154 this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver); 155 this.bodyResolver.setTrace(bindingTrace); 156 157 annotationResolver.setCallResolver(callResolver); 158 annotationResolver.setStorageManager(storageManager); 159 annotationResolver.setTypeResolver(typeResolver); 160 161 callResolver.setArgumentTypeResolver(argumentTypeResolver); 162 callResolver.setCallCompleter(callCompleter); 163 callResolver.setCandidateResolver(candidateResolver); 164 callResolver.setExpressionTypingServices(expressionTypingServices); 165 callResolver.setTaskPrioritizer(taskPrioritizer); 166 callResolver.setTypeResolver(typeResolver); 167 168 argumentTypeResolver.setBuiltIns(kotlinBuiltIns); 169 argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); 170 argumentTypeResolver.setTypeResolver(typeResolver); 171 172 expressionTypingServices.setAnnotationResolver(annotationResolver); 173 expressionTypingServices.setBuiltIns(kotlinBuiltIns); 174 expressionTypingServices.setCallExpressionResolver(callExpressionResolver); 175 expressionTypingServices.setCallResolver(callResolver); 176 expressionTypingServices.setDescriptorResolver(descriptorResolver); 177 expressionTypingServices.setFunctionDescriptorResolver(functionDescriptorResolver); 178 expressionTypingServices.setProject(project); 179 expressionTypingServices.setStatementFilter(statementFilter); 180 expressionTypingServices.setTypeResolver(typeResolver); 181 182 expressionTypingComponents.setAdditionalCheckerProvider(additionalCheckerProvider); 183 expressionTypingComponents.setBuiltIns(kotlinBuiltIns); 184 expressionTypingComponents.setCallResolver(callResolver); 185 expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); 186 expressionTypingComponents.setDynamicTypesSettings(dynamicTypesSettings); 187 expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); 188 expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); 189 expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); 190 expressionTypingComponents.setGlobalContext(globalContext); 191 expressionTypingComponents.setLocalClassifierAnalyzer(localClassifierAnalyzer); 192 expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap); 193 expressionTypingComponents.setReflectionTypes(reflectionTypes); 194 195 forLoopConventionsChecker.setBuiltIns(kotlinBuiltIns); 196 forLoopConventionsChecker.setExpressionTypingServices(expressionTypingServices); 197 forLoopConventionsChecker.setExpressionTypingUtils(expressionTypingUtils); 198 forLoopConventionsChecker.setProject(project); 199 200 descriptorResolver.setAnnotationResolver(annotationResolver); 201 descriptorResolver.setBuiltIns(kotlinBuiltIns); 202 descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 203 descriptorResolver.setExpressionTypingServices(expressionTypingServices); 204 descriptorResolver.setStorageManager(storageManager); 205 descriptorResolver.setTypeResolver(typeResolver); 206 207 delegatedPropertyResolver.setBuiltIns(kotlinBuiltIns); 208 delegatedPropertyResolver.setCallResolver(callResolver); 209 delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); 210 211 callExpressionResolver.setExpressionTypingServices(expressionTypingServices); 212 213 candidateResolver.setArgumentTypeResolver(argumentTypeResolver); 214 215 controlFlowAnalyzer.setTrace(bindingTrace); 216 217 declarationsChecker.setDescriptorResolver(descriptorResolver); 218 declarationsChecker.setModifiersChecker(modifiersChecker); 219 declarationsChecker.setTrace(bindingTrace); 220 221 functionAnalyzerExtension.setTrace(bindingTrace); 222 223 scriptBodyResolver.setExpressionTypingServices(expressionTypingServices); 224 225 } 226 227 @PreDestroy 228 public void destroy() { 229 } 230 231 public BodyResolver getBodyResolver() { 232 return this.bodyResolver; 233 } 234 235 }