001 /* 002 * Copyright 2010-2014 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 com.intellij.openapi.project.Project; 020 import org.jetbrains.jet.context.GlobalContextImpl; 021 import org.jetbrains.jet.storage.LockBasedStorageManager; 022 import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; 023 import org.jetbrains.jet.lang.PlatformToKotlinClassMap; 024 import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory; 025 import org.jetbrains.jet.lang.resolve.BindingTrace; 026 import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; 027 import org.jetbrains.jet.lang.resolve.AnnotationResolver; 028 import org.jetbrains.jet.lang.resolve.calls.CallResolver; 029 import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver; 030 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices; 031 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingComponents; 032 import org.jetbrains.jet.lang.types.expressions.ControlStructureTypingUtils; 033 import org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils; 034 import org.jetbrains.jet.lang.types.expressions.ForLoopConventionsChecker; 035 import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver; 036 import org.jetbrains.jet.lang.resolve.DescriptorResolver; 037 import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver; 038 import org.jetbrains.jet.lang.resolve.TypeResolver; 039 import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver; 040 import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider; 041 import org.jetbrains.jet.lang.resolve.calls.CandidateResolver; 042 import org.jetbrains.jet.lang.psi.JetImportsFactory; 043 import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider; 044 import org.jetbrains.annotations.NotNull; 045 import javax.annotation.PreDestroy; 046 047 /* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */ 048 @SuppressWarnings("ALL") 049 public class InjectorForLazyResolve { 050 051 private final Project project; 052 private final GlobalContextImpl globalContext; 053 private final LockBasedStorageManager lockBasedStorageManager; 054 private final ModuleDescriptorImpl moduleDescriptor; 055 private final PlatformToKotlinClassMap platformToKotlinClassMap; 056 private final DeclarationProviderFactory declarationProviderFactory; 057 private final BindingTrace bindingTrace; 058 private final ResolveSession resolveSession; 059 private final AnnotationResolver annotationResolver; 060 private final CallResolver callResolver; 061 private final ArgumentTypeResolver argumentTypeResolver; 062 private final ExpressionTypingServices expressionTypingServices; 063 private final ExpressionTypingComponents expressionTypingComponents; 064 private final ControlStructureTypingUtils controlStructureTypingUtils; 065 private final ExpressionTypingUtils expressionTypingUtils; 066 private final ForLoopConventionsChecker forLoopConventionsChecker; 067 private final CallExpressionResolver callExpressionResolver; 068 private final DescriptorResolver descriptorResolver; 069 private final DelegatedPropertyResolver delegatedPropertyResolver; 070 private final TypeResolver typeResolver; 071 private final QualifiedExpressionResolver qualifiedExpressionResolver; 072 private final CallResolverExtensionProvider callResolverExtensionProvider; 073 private final CandidateResolver candidateResolver; 074 private final JetImportsFactory jetImportsFactory; 075 private final ScopeProvider scopeProvider; 076 077 public InjectorForLazyResolve( 078 @NotNull Project project, 079 @NotNull GlobalContextImpl globalContext, 080 @NotNull ModuleDescriptorImpl moduleDescriptor, 081 @NotNull DeclarationProviderFactory declarationProviderFactory, 082 @NotNull BindingTrace bindingTrace 083 ) { 084 this.project = project; 085 this.globalContext = globalContext; 086 this.lockBasedStorageManager = globalContext.getStorageManager(); 087 this.moduleDescriptor = moduleDescriptor; 088 this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap(); 089 this.declarationProviderFactory = declarationProviderFactory; 090 this.bindingTrace = bindingTrace; 091 this.resolveSession = new ResolveSession(project, globalContext, moduleDescriptor, declarationProviderFactory, bindingTrace); 092 this.annotationResolver = new AnnotationResolver(); 093 this.callResolver = new CallResolver(); 094 this.argumentTypeResolver = new ArgumentTypeResolver(); 095 this.expressionTypingComponents = new ExpressionTypingComponents(); 096 this.expressionTypingServices = new ExpressionTypingServices(expressionTypingComponents); 097 this.controlStructureTypingUtils = new ControlStructureTypingUtils(expressionTypingServices); 098 this.expressionTypingUtils = new ExpressionTypingUtils(expressionTypingServices, callResolver); 099 this.forLoopConventionsChecker = new ForLoopConventionsChecker(); 100 this.callExpressionResolver = new CallExpressionResolver(); 101 this.descriptorResolver = new DescriptorResolver(); 102 this.delegatedPropertyResolver = new DelegatedPropertyResolver(); 103 this.typeResolver = new TypeResolver(); 104 this.qualifiedExpressionResolver = new QualifiedExpressionResolver(); 105 this.callResolverExtensionProvider = new CallResolverExtensionProvider(); 106 this.candidateResolver = new CandidateResolver(); 107 this.jetImportsFactory = new JetImportsFactory(); 108 this.scopeProvider = new ScopeProvider(getResolveSession()); 109 110 this.resolveSession.setAnnotationResolve(annotationResolver); 111 this.resolveSession.setDescriptorResolver(descriptorResolver); 112 this.resolveSession.setJetImportFactory(jetImportsFactory); 113 this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver); 114 this.resolveSession.setScopeProvider(scopeProvider); 115 this.resolveSession.setTypeResolver(typeResolver); 116 117 annotationResolver.setCallResolver(callResolver); 118 annotationResolver.setExpressionTypingServices(expressionTypingServices); 119 120 callResolver.setArgumentTypeResolver(argumentTypeResolver); 121 callResolver.setCandidateResolver(candidateResolver); 122 callResolver.setExpressionTypingServices(expressionTypingServices); 123 callResolver.setTypeResolver(typeResolver); 124 125 argumentTypeResolver.setExpressionTypingServices(expressionTypingServices); 126 argumentTypeResolver.setTypeResolver(typeResolver); 127 128 expressionTypingServices.setAnnotationResolver(annotationResolver); 129 expressionTypingServices.setCallExpressionResolver(callExpressionResolver); 130 expressionTypingServices.setCallResolver(callResolver); 131 expressionTypingServices.setDescriptorResolver(descriptorResolver); 132 expressionTypingServices.setExtensionProvider(callResolverExtensionProvider); 133 expressionTypingServices.setProject(project); 134 expressionTypingServices.setTypeResolver(typeResolver); 135 136 expressionTypingComponents.setCallResolver(callResolver); 137 expressionTypingComponents.setControlStructureTypingUtils(controlStructureTypingUtils); 138 expressionTypingComponents.setExpressionTypingServices(expressionTypingServices); 139 expressionTypingComponents.setExpressionTypingUtils(expressionTypingUtils); 140 expressionTypingComponents.setForLoopConventionsChecker(forLoopConventionsChecker); 141 expressionTypingComponents.setGlobalContext(globalContext); 142 expressionTypingComponents.setPlatformToKotlinClassMap(platformToKotlinClassMap); 143 144 forLoopConventionsChecker.setExpressionTypingServices(expressionTypingServices); 145 forLoopConventionsChecker.setExpressionTypingUtils(expressionTypingUtils); 146 forLoopConventionsChecker.setProject(project); 147 148 callExpressionResolver.setExpressionTypingServices(expressionTypingServices); 149 150 descriptorResolver.setAnnotationResolver(annotationResolver); 151 descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver); 152 descriptorResolver.setExpressionTypingServices(expressionTypingServices); 153 descriptorResolver.setStorageManager(lockBasedStorageManager); 154 descriptorResolver.setTypeResolver(typeResolver); 155 156 delegatedPropertyResolver.setCallResolver(callResolver); 157 delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices); 158 159 typeResolver.setAnnotationResolver(annotationResolver); 160 typeResolver.setModuleDescriptor(moduleDescriptor); 161 typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver); 162 163 candidateResolver.setArgumentTypeResolver(argumentTypeResolver); 164 165 jetImportsFactory.setProject(project); 166 167 } 168 169 @PreDestroy 170 public void destroy() { 171 } 172 173 public ResolveSession getResolveSession() { 174 return this.resolveSession; 175 } 176 177 }