Minor. Inject CallComponents to CallCheckerContext
This commit is contained in:
committed by
Space Team
parent
503f4d924d
commit
4b455c0e51
@@ -17,11 +17,6 @@ import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.*
|
||||
import org.jetbrains.kotlin.resolve.BindingContext.CONSTRAINT_SYSTEM_COMPLETER
|
||||
import org.jetbrains.kotlin.resolve.calls.util.ResolveArgumentsMode.RESOLVE_FUNCTION_ARGUMENTS
|
||||
import org.jetbrains.kotlin.resolve.calls.util.getEffectiveExpectedType
|
||||
import org.jetbrains.kotlin.resolve.calls.util.isInvokeCallOnVariable
|
||||
import org.jetbrains.kotlin.resolve.calls.util.isCallableReference
|
||||
import org.jetbrains.kotlin.resolve.calls.util.isFakeElement
|
||||
import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker
|
||||
import org.jetbrains.kotlin.resolve.calls.checkers.CallCheckerContext
|
||||
import org.jetbrains.kotlin.resolve.calls.context.BasicCallResolutionContext
|
||||
@@ -34,12 +29,13 @@ import org.jetbrains.kotlin.resolve.calls.inference.constraintPosition.Constrain
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.filterConstraintsOut
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.toHandle
|
||||
import org.jetbrains.kotlin.resolve.calls.model.*
|
||||
import org.jetbrains.kotlin.resolve.calls.util.makeNullableTypeIfSafeReceiver
|
||||
import org.jetbrains.kotlin.resolve.calls.results.OverloadResolutionResultsImpl
|
||||
import org.jetbrains.kotlin.resolve.calls.results.ResolutionStatus
|
||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo
|
||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.TracingStrategy
|
||||
import org.jetbrains.kotlin.resolve.calls.util.*
|
||||
import org.jetbrains.kotlin.resolve.calls.util.ResolveArgumentsMode.RESOLVE_FUNCTION_ARGUMENTS
|
||||
import org.jetbrains.kotlin.resolve.checkers.MissingDependencySupertypeChecker
|
||||
import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant
|
||||
import org.jetbrains.kotlin.resolve.constants.IntegerValueTypeConstant
|
||||
@@ -61,7 +57,8 @@ class CallCompleter(
|
||||
private val deprecationResolver: DeprecationResolver,
|
||||
private val effectSystem: EffectSystem,
|
||||
private val dataFlowValueFactory: DataFlowValueFactory,
|
||||
private val missingSupertypesResolver: MissingSupertypesResolver
|
||||
private val missingSupertypesResolver: MissingSupertypesResolver,
|
||||
private val callComponents: KotlinCallComponents,
|
||||
) {
|
||||
fun <D : CallableDescriptor> completeCall(
|
||||
context: BasicCallResolutionContext,
|
||||
@@ -90,7 +87,8 @@ class CallCompleter(
|
||||
if (calleeExpression != null && !calleeExpression.isFakeElement) calleeExpression
|
||||
else resolvedCall.call.callElement
|
||||
|
||||
val callCheckerContext = CallCheckerContext(context, deprecationResolver, moduleDescriptor, missingSupertypesResolver)
|
||||
val callCheckerContext =
|
||||
CallCheckerContext(context, deprecationResolver, moduleDescriptor, missingSupertypesResolver, callComponents)
|
||||
for (callChecker in callCheckers) {
|
||||
callChecker.check(resolvedCall, reportOn, callCheckerContext)
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.kotlin.resolve.BindingTrace
|
||||
import org.jetbrains.kotlin.resolve.MissingSupertypesResolver
|
||||
import org.jetbrains.kotlin.resolve.calls.context.ResolutionContext
|
||||
import org.jetbrains.kotlin.resolve.calls.model.KotlinCallComponents
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowInfo
|
||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory
|
||||
@@ -44,6 +45,7 @@ class CallCheckerContext @JvmOverloads constructor(
|
||||
override val deprecationResolver: DeprecationResolver,
|
||||
override val moduleDescriptor: ModuleDescriptor,
|
||||
val missingSupertypesResolver: MissingSupertypesResolver,
|
||||
val callComponents: KotlinCallComponents,
|
||||
override val trace: BindingTrace = resolutionContext.trace
|
||||
) : CheckerContext {
|
||||
val scope: LexicalScope
|
||||
|
||||
+2
-1
@@ -567,7 +567,8 @@ class BuilderInferenceSession(
|
||||
return ResolvedAtomCompleter(
|
||||
resultSubstitutor, context, kotlinToResolvedCallTransformer,
|
||||
expressionTypingServices, argumentTypeResolver, doubleColonExpressionResolver, builtIns,
|
||||
deprecationResolver, moduleDescriptor, context.dataFlowValueFactory, typeApproximator, missingSupertypesResolver
|
||||
deprecationResolver, moduleDescriptor, context.dataFlowValueFactory, typeApproximator, missingSupertypesResolver,
|
||||
callComponents,
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
+5
-3
@@ -14,9 +14,6 @@ import org.jetbrains.kotlin.resolve.*
|
||||
import org.jetbrains.kotlin.resolve.calls.ArgumentTypeResolver
|
||||
import org.jetbrains.kotlin.resolve.calls.CallTransformer
|
||||
import org.jetbrains.kotlin.resolve.calls.DiagnosticReporterByTrackingStrategy
|
||||
import org.jetbrains.kotlin.resolve.calls.util.getEffectiveExpectedType
|
||||
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.util.isFakeElement
|
||||
import org.jetbrains.kotlin.resolve.calls.checkers.AdditionalTypeChecker
|
||||
import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker
|
||||
import org.jetbrains.kotlin.resolve.calls.checkers.CallCheckerContext
|
||||
@@ -29,6 +26,9 @@ import org.jetbrains.kotlin.resolve.calls.model.*
|
||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory
|
||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.SmartCastManager
|
||||
import org.jetbrains.kotlin.resolve.calls.tasks.TracingStrategy
|
||||
import org.jetbrains.kotlin.resolve.calls.util.getEffectiveExpectedType
|
||||
import org.jetbrains.kotlin.resolve.calls.util.getResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.util.isFakeElement
|
||||
import org.jetbrains.kotlin.resolve.calls.util.makeNullableTypeIfSafeReceiver
|
||||
import org.jetbrains.kotlin.resolve.constants.CompileTimeConstant
|
||||
import org.jetbrains.kotlin.resolve.constants.IntegerLiteralTypeConstructor
|
||||
@@ -62,6 +62,7 @@ class KotlinToResolvedCallTransformer(
|
||||
private val typeApproximator: TypeApproximator,
|
||||
private val missingSupertypesResolver: MissingSupertypesResolver,
|
||||
private val candidateInterceptor: CandidateInterceptor,
|
||||
private val callComponents: KotlinCallComponents,
|
||||
) {
|
||||
companion object {
|
||||
private val REPORT_MISSING_NEW_INFERENCE_DIAGNOSTIC
|
||||
@@ -127,6 +128,7 @@ class KotlinToResolvedCallTransformer(
|
||||
resultSubstitutor, context, this, expressionTypingServices, argumentTypeResolver,
|
||||
doubleColonExpressionResolver, builtIns, deprecationResolver, moduleDescriptor, dataFlowValueFactory,
|
||||
typeApproximator, missingSupertypesResolver,
|
||||
callComponents,
|
||||
)
|
||||
|
||||
if (context.inferenceSession.shouldCompleteResolvedSubAtomsOf(candidate)) {
|
||||
|
||||
+5
-3
@@ -61,10 +61,11 @@ class ResolvedAtomCompleter(
|
||||
private val moduleDescriptor: ModuleDescriptor,
|
||||
private val dataFlowValueFactory: DataFlowValueFactory,
|
||||
private val typeApproximator: TypeApproximator,
|
||||
private val missingSupertypesResolver: MissingSupertypesResolver
|
||||
private val missingSupertypesResolver: MissingSupertypesResolver,
|
||||
private val callComponents: KotlinCallComponents,
|
||||
) {
|
||||
private val topLevelCallCheckerContext = CallCheckerContext(
|
||||
topLevelCallContext, deprecationResolver, moduleDescriptor, missingSupertypesResolver
|
||||
topLevelCallContext, deprecationResolver, moduleDescriptor, missingSupertypesResolver, callComponents,
|
||||
)
|
||||
private val topLevelTrace = topLevelCallCheckerContext.trace
|
||||
|
||||
@@ -186,7 +187,8 @@ class ResolvedAtomCompleter(
|
||||
resolutionContextForPartialCall.replaceBindingTrace(topLevelTrace),
|
||||
deprecationResolver,
|
||||
moduleDescriptor,
|
||||
missingSupertypesResolver
|
||||
missingSupertypesResolver,
|
||||
callComponents,
|
||||
)
|
||||
else
|
||||
topLevelCallCheckerContext
|
||||
|
||||
+3
-1
@@ -978,6 +978,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
components.deprecationResolver,
|
||||
components.moduleDescriptor,
|
||||
components.missingSupertypesResolver,
|
||||
components.callComponents,
|
||||
trace
|
||||
);
|
||||
for (CallChecker checker : components.callCheckers) {
|
||||
@@ -1064,7 +1065,8 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
|
||||
context,
|
||||
components.deprecationResolver,
|
||||
components.moduleDescriptor,
|
||||
components.missingSupertypesResolver
|
||||
components.missingSupertypesResolver,
|
||||
components.callComponents
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
+8
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.resolve.calls.CallExpressionResolver;
|
||||
import org.jetbrains.kotlin.resolve.calls.CallResolver;
|
||||
import org.jetbrains.kotlin.resolve.calls.checkers.CallChecker;
|
||||
import org.jetbrains.kotlin.resolve.calls.checkers.RttiExpressionChecker;
|
||||
import org.jetbrains.kotlin.resolve.calls.model.KotlinCallComponents;
|
||||
import org.jetbrains.kotlin.resolve.calls.smartcasts.DataFlowValueFactory;
|
||||
import org.jetbrains.kotlin.resolve.constants.evaluate.ConstantExpressionEvaluator;
|
||||
import org.jetbrains.kotlin.resolve.deprecation.DeprecationResolver;
|
||||
@@ -69,6 +70,8 @@ public class ExpressionTypingComponents {
|
||||
public MissingSupertypesResolver missingSupertypesResolver;
|
||||
public AnnotationChecker annotationChecker;
|
||||
|
||||
public KotlinCallComponents callComponents;
|
||||
|
||||
|
||||
@Inject
|
||||
public void setGlobalContext(@NotNull GlobalContext globalContext) {
|
||||
@@ -264,4 +267,9 @@ public class ExpressionTypingComponents {
|
||||
public void setAnnotationChecker(@NotNull AnnotationChecker annotationChecker) {
|
||||
this.annotationChecker = annotationChecker;
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setCallComponents(@NotNull KotlinCallComponents callComponents) {
|
||||
this.callComponents = callComponents;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user