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 }