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