diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolver.java index 3842af4d3ca..952f299a05e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallResolver.java @@ -264,7 +264,7 @@ public class CallResolver { return resolveFunctionCall( BasicCallResolutionContext.create( trace, scope, call, expectedType, dataFlowInfo, ContextDependency.INDEPENDENT, CheckArgumentTypesMode.CHECK_VALUE_ARGUMENTS, - additionalCheckerProvider.getCallChecker(), additionalCheckerProvider.getSymbolUsageValidator(), + additionalCheckerProvider.getCallChecker(), additionalCheckerProvider.getTypeChecker(), isAnnotationContext) ); } @@ -345,7 +345,7 @@ public class CallResolver { CallMaker.makeCall(ReceiverValue.NO_RECEIVER, null, call), NO_EXPECTED_TYPE, dataFlowInfo, ContextDependency.INDEPENDENT, CheckArgumentTypesMode.CHECK_VALUE_ARGUMENTS, - callChecker, additionalCheckerProvider.getSymbolUsageValidator(), additionalCheckerProvider.getTypeChecker(), false); + callChecker, additionalCheckerProvider.getTypeChecker(), false); if (call.getCalleeExpression() == null) return checkArgumentTypesAndFail(context); diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java index 46333524e10..09f8a76c8a3 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/BasicCallResolutionContext.java @@ -26,7 +26,6 @@ import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker; import org.jetbrains.kotlin.resolve.calls.model.MutableDataFlowInfoForArguments; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.scopes.JetScope; -import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator; import org.jetbrains.kotlin.types.JetType; public class BasicCallResolutionContext extends CallResolutionContext { @@ -41,7 +40,6 @@ public class BasicCallResolutionContext extends CallResolutionContext extends CallResolutionContext> { @@ -56,7 +55,6 @@ public final class CallCandidateResolutionContext @NotNull ResolutionResultsCache resolutionResultsCache, @Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments, @NotNull CallChecker callChecker, - @NotNull SymbolUsageValidator symbolUsageValidator, @NotNull AdditionalTypeChecker additionalTypeChecker, @NotNull StatementFilter statementFilter, @NotNull ReceiverValue explicitExtensionReceiverForInvoke, @@ -66,7 +64,7 @@ public final class CallCandidateResolutionContext boolean insideSafeCallChain ) { super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, resolutionResultsCache, - dataFlowInfoForArguments, callChecker, symbolUsageValidator, additionalTypeChecker, statementFilter, isAnnotationContext, + dataFlowInfoForArguments, callChecker, additionalTypeChecker, statementFilter, isAnnotationContext, collectAllCandidates, insideSafeCallChain); this.candidateCall = candidateCall; this.tracing = tracing; @@ -84,7 +82,7 @@ public final class CallCandidateResolutionContext candidateCall, tracing, trace, context.scope, call, context.expectedType, context.dataFlowInfo, context.contextDependency, context.checkArguments, context.resolutionResultsCache, context.dataFlowInfoForArguments, - context.callChecker, context.symbolUsageValidator, context.additionalTypeChecker, context.statementFilter, explicitExtensionReceiverForInvoke, + context.callChecker, context.additionalTypeChecker, context.statementFilter, explicitExtensionReceiverForInvoke, candidateResolveMode, context.isAnnotationContext, context.collectAllCandidates, context.insideCallChain); } @@ -95,7 +93,7 @@ public final class CallCandidateResolutionContext return new CallCandidateResolutionContext( candidateCall, tracing, context.trace, context.scope, context.call, context.expectedType, context.dataFlowInfo, context.contextDependency, context.checkArguments, context.resolutionResultsCache, - context.dataFlowInfoForArguments, context.callChecker, context.symbolUsageValidator, context.additionalTypeChecker, context.statementFilter, + context.dataFlowInfoForArguments, context.callChecker, context.additionalTypeChecker, context.statementFilter, ReceiverValue.NO_RECEIVER, CandidateResolveMode.FULLY, context.isAnnotationContext, context.collectAllCandidates, context.insideCallChain); } @@ -113,7 +111,7 @@ public final class CallCandidateResolutionContext ) { return new CallCandidateResolutionContext( candidateCall, tracing, trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, - resolutionResultsCache, dataFlowInfoForArguments, callChecker, symbolUsageValidator, additionalTypeChecker, statementFilter, + resolutionResultsCache, dataFlowInfoForArguments, callChecker, additionalTypeChecker, statementFilter, explicitExtensionReceiverForInvoke, candidateResolveMode, isAnnotationContext, collectAllCandidates, insideSafeCallChain); } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallResolutionContext.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallResolutionContext.java index 79e8ef837fc..75bbcb6a28e 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallResolutionContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/context/CallResolutionContext.java @@ -27,7 +27,6 @@ import org.jetbrains.kotlin.resolve.calls.model.DataFlowInfoForArgumentsImpl; import org.jetbrains.kotlin.resolve.calls.model.MutableDataFlowInfoForArguments; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.scopes.JetScope; -import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator; import org.jetbrains.kotlin.types.JetType; public abstract class CallResolutionContext> extends ResolutionContext { @@ -50,14 +49,13 @@ public abstract class CallResolutionContext { - private SimpleResolutionContext( - @NotNull BindingTrace trace, - @NotNull JetScope scope, - @NotNull JetType expectedType, - @NotNull DataFlowInfo dataFlowInfo, - @NotNull ContextDependency contextDependency, - @NotNull ResolutionResultsCache resolutionResultsCache, - @NotNull CallChecker callChecker, - @NotNull SymbolUsageValidator symbolUsageValidator, - @NotNull AdditionalTypeChecker additionalTypeChecker, - @NotNull StatementFilter statementFilter, - boolean isAnnotationContext, - boolean collectAllCandidates, - boolean insideSafeCallChain - ) { - super(trace, scope, expectedType, dataFlowInfo, contextDependency, resolutionResultsCache, callChecker, symbolUsageValidator, - additionalTypeChecker, - statementFilter, isAnnotationContext, collectAllCandidates, insideSafeCallChain); - } - - public SimpleResolutionContext( - @NotNull BindingTrace trace, - @NotNull JetScope scope, - @NotNull JetType expectedType, - @NotNull DataFlowInfo dataFlowInfo, - @NotNull ContextDependency contextDependency, - @NotNull CallChecker callChecker, - @NotNull SymbolUsageValidator symbolUsageValidator, - @NotNull AdditionalTypeChecker additionalTypeChecker, - @NotNull StatementFilter statementFilter - ) { - this(trace, scope, expectedType, dataFlowInfo, contextDependency, new ResolutionResultsCacheImpl(), - callChecker, symbolUsageValidator, additionalTypeChecker, statementFilter, false, false, false); - } - - @Override - protected SimpleResolutionContext create( - @NotNull BindingTrace trace, - @NotNull JetScope scope, - @NotNull DataFlowInfo dataFlowInfo, - @NotNull JetType expectedType, - @NotNull ContextDependency contextDependency, - @NotNull ResolutionResultsCache resolutionResultsCache, - @NotNull StatementFilter statementFilter, - boolean collectAllCandidates, - boolean insideSafeCallChain - ) { - return new SimpleResolutionContext( - trace, scope, expectedType, dataFlowInfo, contextDependency, resolutionResultsCache, - callChecker, symbolUsageValidator, additionalTypeChecker, - statementFilter, isAnnotationContext, collectAllCandidates, insideSafeCallChain); - } -} diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/ResolutionTask.java b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/ResolutionTask.java index 4cf0ac7a1c6..1512f6a7d79 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/ResolutionTask.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/tasks/ResolutionTask.java @@ -31,7 +31,6 @@ import org.jetbrains.kotlin.resolve.calls.model.MutableDataFlowInfoForArguments; import org.jetbrains.kotlin.resolve.calls.model.MutableResolvedCall; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.scopes.JetScope; -import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator; import org.jetbrains.kotlin.types.JetType; import java.util.Collection; @@ -57,7 +56,6 @@ public class ResolutionTask extends C @NotNull ResolutionResultsCache resolutionResultsCache, @Nullable MutableDataFlowInfoForArguments dataFlowInfoForArguments, @NotNull CallChecker callChecker, - @NotNull SymbolUsageValidator symbolUsageValidator, @NotNull AdditionalTypeChecker additionalTypeChecker, @NotNull StatementFilter statementFilter, @NotNull Collection> resolvedCalls, @@ -66,7 +64,7 @@ public class ResolutionTask extends C boolean insideSafeCallChain ) { super(trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, resolutionResultsCache, - dataFlowInfoForArguments, callChecker, symbolUsageValidator, additionalTypeChecker, statementFilter, isAnnotationContext, collectAllCandidates, insideSafeCallChain); + dataFlowInfoForArguments, callChecker, additionalTypeChecker, statementFilter, isAnnotationContext, collectAllCandidates, insideSafeCallChain); this.lazyCandidates = lazyCandidates; this.resolvedCalls = resolvedCalls; this.tracing = tracing; @@ -81,7 +79,7 @@ public class ResolutionTask extends C context.trace, context.scope, context.call, context.expectedType, context.dataFlowInfo, context.contextDependency, context.checkArguments, context.resolutionResultsCache, context.dataFlowInfoForArguments, - context.callChecker, context.symbolUsageValidator, context.additionalTypeChecker, + context.callChecker, context.additionalTypeChecker, context.statementFilter, new SmartList>(), context.isAnnotationContext, context.collectAllCandidates, context.insideCallChain); } @@ -115,7 +113,7 @@ public class ResolutionTask extends C return new ResolutionTask( lazyCandidates, tracing, trace, scope, call, expectedType, dataFlowInfo, contextDependency, checkArguments, resolutionResultsCache, dataFlowInfoForArguments, - callChecker, symbolUsageValidator, additionalTypeChecker, + callChecker, additionalTypeChecker, statementFilter, resolvedCalls, isAnnotationContext, collectAllCandidates, insideSafeCallChain); } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt index a7240b3f284..6f7d09b2ade 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/constants/evaluate/ConstantExpressionEvaluator.kt @@ -31,17 +31,10 @@ import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.resolve.* import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall -import org.jetbrains.kotlin.resolve.calls.checkers.AdditionalTypeChecker -import org.jetbrains.kotlin.resolve.calls.checkers.CompositeChecker -import org.jetbrains.kotlin.resolve.calls.context.ContextDependency -import org.jetbrains.kotlin.resolve.calls.context.SimpleResolutionContext import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall import org.jetbrains.kotlin.resolve.calls.model.ResolvedValueArgument -import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind import org.jetbrains.kotlin.resolve.constants.* -import org.jetbrains.kotlin.resolve.scopes.JetScope -import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.types.TypeUtils import org.jetbrains.kotlin.types.checker.JetTypeChecker diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java index becb94c2792..11bc0988cd6 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/BasicExpressionTypingVisitor.java @@ -54,7 +54,6 @@ import org.jetbrains.kotlin.resolve.calls.tasks.ResolutionCandidate; import org.jetbrains.kotlin.resolve.calls.tasks.TracingStrategy; import org.jetbrains.kotlin.resolve.calls.util.CallMaker; import org.jetbrains.kotlin.resolve.constants.*; -import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator; import org.jetbrains.kotlin.resolve.scopes.WritableScopeImpl; import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.kotlin.types.*; @@ -431,7 +430,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { } @NotNull // No class receivers - private static LabelResolver.LabeledReceiverResolutionResult resolveToReceiver( + private LabelResolver.LabeledReceiverResolutionResult resolveToReceiver( JetInstanceExpressionWithLabel expression, ExpressionTypingContext context, boolean onlyClassReceivers @@ -471,7 +470,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { } } - private static void recordThisOrSuperCallInTraceAndCallExtension( + private void recordThisOrSuperCallInTraceAndCallExtension( ExpressionTypingContext context, ReceiverParameterDescriptor descriptor, JetExpression expression @@ -494,7 +493,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { BasicCallResolutionContext resolutionContext = BasicCallResolutionContext.create(context, call, CheckArgumentTypesMode.CHECK_CALLABLE_TYPE); context.callChecker.check(resolvedCall, resolutionContext); - context.symbolUsageValidator.validateCall(descriptor, trace, expression); + components.symbolUsageValidator.validateCall(descriptor, trace, expression); } private static boolean isDeclaredInClass(ReceiverParameterDescriptor receiver) { @@ -901,7 +900,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { result = false; } else { if (setter != null) { - context.symbolUsageValidator.validateCall(setter, trace, reportOn); + components.symbolUsageValidator.validateCall(setter, trace, reportOn); } } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java index d4412553719..c600003d75c 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/types/expressions/ExpressionTypingContext.java @@ -22,15 +22,14 @@ import org.jetbrains.kotlin.resolve.AdditionalCheckerProvider; import org.jetbrains.kotlin.resolve.BindingTrace; import org.jetbrains.kotlin.resolve.StatementFilter; import org.jetbrains.kotlin.resolve.calls.checkers.AdditionalTypeChecker; +import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker; import org.jetbrains.kotlin.resolve.calls.context.ContextDependency; import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext; import org.jetbrains.kotlin.resolve.calls.context.ResolutionResultsCache; import org.jetbrains.kotlin.resolve.calls.context.ResolutionResultsCacheImpl; -import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker; import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo; import org.jetbrains.kotlin.resolve.constants.CompileTimeConstantChecker; import org.jetbrains.kotlin.resolve.scopes.JetScope; -import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator; import org.jetbrains.kotlin.types.JetType; public class ExpressionTypingContext extends ResolutionContext { @@ -58,7 +57,6 @@ public class ExpressionTypingContext extends ResolutionContext = callResolver.resolveFunctionCall(callResolutionContext) diff --git a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt index 09f9f8b248b..8921dcd91f5 100644 --- a/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt +++ b/idea/idea-core/src/org/jetbrains/kotlin/idea/core/KotlinIndicesHelper.kt @@ -40,7 +40,6 @@ import org.jetbrains.kotlin.resolve.calls.smartcasts.SmartCastUtils import org.jetbrains.kotlin.resolve.lazy.ResolveSessionUtils import org.jetbrains.kotlin.resolve.scopes.receivers.ExpressionReceiver import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue -import org.jetbrains.kotlin.resolve.validation.SymbolUsageValidator import org.jetbrains.kotlin.types.JetType import org.jetbrains.kotlin.utils.addIfNotNull import org.jetbrains.kotlin.utils.addToStdlib.singletonOrEmptyList