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 }