001    /*
002     * Copyright 2010-2016 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.types.expressions;
018    
019    import org.jetbrains.annotations.NotNull;
020    import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
021    import org.jetbrains.kotlin.config.CompilerConfiguration;
022    import org.jetbrains.kotlin.config.LanguageVersionSettings;
023    import org.jetbrains.kotlin.context.GlobalContext;
024    import org.jetbrains.kotlin.incremental.components.LookupTracker;
025    import org.jetbrains.kotlin.platform.PlatformToKotlinClassMap;
026    import org.jetbrains.kotlin.resolve.*;
027    import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
028    import org.jetbrains.kotlin.resolve.calls.CallResolver;
029    import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker;
030    import org.jetbrains.kotlin.resolve.calls.checkers.RttiExpressionChecker;
031    import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator;
032    
033    import javax.inject.Inject;
034    
035    public class ExpressionTypingComponents {
036        /*package*/ GlobalContext globalContext;
037        /*package*/ ExpressionTypingServices expressionTypingServices;
038        /*package*/ CallResolver callResolver;
039        /*package*/ PlatformToKotlinClassMap platformToKotlinClassMap;
040        /*package*/ ControlStructureTypingUtils controlStructureTypingUtils;
041        /*package*/ ForLoopConventionsChecker forLoopConventionsChecker;
042        /*package*/ FakeCallResolver fakeCallResolver;
043        /*package*/ KotlinBuiltIns builtIns;
044        /*package*/ LocalClassifierAnalyzer localClassifierAnalyzer;
045        /*package*/ FunctionDescriptorResolver functionDescriptorResolver;
046        /*package*/ CallExpressionResolver callExpressionResolver;
047        /*package*/ DoubleColonExpressionResolver doubleColonExpressionResolver;
048        /*package*/ DescriptorResolver descriptorResolver;
049        /*package*/ TypeResolver typeResolver;
050        /*package*/ AnnotationResolver annotationResolver;
051        /*package*/ ValueParameterResolver valueParameterResolver;
052        /*package*/ DestructuringDeclarationResolver destructuringDeclarationResolver;
053        /*package*/ ConstantExpressionEvaluator constantExpressionEvaluator;
054        /*package*/ ModifiersChecker modifiersChecker;
055        /*package*/ DataFlowAnalyzer dataFlowAnalyzer;
056        /*package*/ Iterable<CallChecker> callCheckers;
057        /*package*/ IdentifierChecker identifierChecker;
058        /*package*/ DeclarationsCheckerBuilder declarationsCheckerBuilder;
059        /*package*/ LocalVariableResolver localVariableResolver;
060        /*package*/ LookupTracker lookupTracker;
061        /*package*/ OverloadChecker overloadChecker;
062        /*package*/ LanguageVersionSettings languageVersionSettings;
063        /*package*/ Iterable<RttiExpressionChecker> rttiExpressionCheckers;
064        /*package*/ CompilerConfiguration compilerConfiguration;
065    
066        @Inject
067        public void setGlobalContext(@NotNull GlobalContext globalContext) {
068            this.globalContext = globalContext;
069        }
070    
071        @Inject
072        public void setExpressionTypingServices(@NotNull ExpressionTypingServices expressionTypingServices) {
073            this.expressionTypingServices = expressionTypingServices;
074        }
075    
076        @Inject
077        public void setCallResolver(@NotNull CallResolver callResolver) {
078            this.callResolver = callResolver;
079        }
080    
081        @Inject
082        public void setPlatformToKotlinClassMap(@NotNull PlatformToKotlinClassMap platformToKotlinClassMap) {
083            this.platformToKotlinClassMap = platformToKotlinClassMap;
084        }
085    
086        @Inject
087        public void setControlStructureTypingUtils(@NotNull ControlStructureTypingUtils controlStructureTypingUtils) {
088            this.controlStructureTypingUtils = controlStructureTypingUtils;
089        }
090    
091        @Inject
092        public void setForLoopConventionsChecker(@NotNull ForLoopConventionsChecker forLoopConventionsChecker) {
093            this.forLoopConventionsChecker = forLoopConventionsChecker;
094        }
095    
096        @Inject
097        public void setFakeCallResolver(@NotNull FakeCallResolver fakeCallResolver) {
098            this.fakeCallResolver = fakeCallResolver;
099        }
100    
101        @Inject
102        public void setBuiltIns(@NotNull KotlinBuiltIns builtIns) {
103            this.builtIns = builtIns;
104        }
105    
106        @Inject
107        public void setLocalClassifierAnalyzer(@NotNull LocalClassifierAnalyzer localClassifierAnalyzer) {
108            this.localClassifierAnalyzer = localClassifierAnalyzer;
109        }
110    
111        @Inject
112        public void setFunctionDescriptorResolver(FunctionDescriptorResolver functionDescriptorResolver) {
113            this.functionDescriptorResolver = functionDescriptorResolver;
114        }
115    
116        @Inject
117        public void setCallExpressionResolver(CallExpressionResolver callExpressionResolver) {
118            this.callExpressionResolver = callExpressionResolver;
119        }
120    
121        @Inject
122        public void setDoubleColonExpressionResolver(DoubleColonExpressionResolver doubleColonExpressionResolver) {
123            this.doubleColonExpressionResolver = doubleColonExpressionResolver;
124        }
125    
126        @Inject
127        public void setDescriptorResolver(DescriptorResolver descriptorResolver) {
128            this.descriptorResolver = descriptorResolver;
129        }
130    
131        @Inject
132        public void setTypeResolver(TypeResolver typeResolver) {
133            this.typeResolver = typeResolver;
134        }
135    
136        @Inject
137        public void setAnnotationResolver(AnnotationResolver annotationResolver) {
138            this.annotationResolver = annotationResolver;
139        }
140    
141        @Inject
142        public void setValueParameterResolver(ValueParameterResolver valueParameterResolver) {
143            this.valueParameterResolver = valueParameterResolver;
144        }
145    
146        @Inject
147        public void setDestructuringDeclarationResolver(DestructuringDeclarationResolver destructuringDeclarationResolver) {
148            this.destructuringDeclarationResolver = destructuringDeclarationResolver;
149        }
150    
151        @Inject
152        public void setConstantExpressionEvaluator(@NotNull ConstantExpressionEvaluator constantExpressionEvaluator) {
153            this.constantExpressionEvaluator = constantExpressionEvaluator;
154        }
155    
156        @Inject
157        public void setModifiersChecker(@NotNull ModifiersChecker modifiersChecker) {
158            this.modifiersChecker = modifiersChecker;
159        }
160    
161        @Inject
162        public void setIdentifierChecker(@NotNull IdentifierChecker identifierChecker) {
163            this.identifierChecker = identifierChecker;
164        }
165    
166        @Inject
167        public void setDataFlowAnalyzer(@NotNull DataFlowAnalyzer dataFlowAnalyzer) {
168            this.dataFlowAnalyzer = dataFlowAnalyzer;
169        }
170    
171        @Inject
172        public void setCallCheckers(@NotNull Iterable<CallChecker> callCheckers) {
173            this.callCheckers = callCheckers;
174        }
175    
176        @Inject
177        public void setDeclarationsCheckerBuilder(@NotNull DeclarationsCheckerBuilder declarationsCheckerBuilder) {
178            this.declarationsCheckerBuilder = declarationsCheckerBuilder;
179        }
180    
181        @Inject
182        public void setLocalVariableResolver(@NotNull  LocalVariableResolver localVariableResolver) {
183            this.localVariableResolver = localVariableResolver;
184        }
185    
186        @Inject
187        public void setLookupTracker(@NotNull LookupTracker lookupTracker) {
188            this.lookupTracker = lookupTracker;
189        }
190    
191        @Inject
192        public void setOverloadChecker(OverloadChecker overloadChecker) {
193            this.overloadChecker = overloadChecker;
194        }
195    
196        @Inject
197        public void setLanguageVersionSettings(@NotNull LanguageVersionSettings languageVersionSettings) {
198            this.languageVersionSettings = languageVersionSettings;
199        }
200    
201        @Inject
202        public void setRttiExpressionCheckers(@NotNull Iterable<RttiExpressionChecker> rttiExpressionCheckers) {
203            this.rttiExpressionCheckers = rttiExpressionCheckers;
204        }
205    
206        @Inject
207        public void setCompilerConfiguration(CompilerConfiguration compilerConfiguration) {
208            this.compilerConfiguration = compilerConfiguration;
209        }
210    }