[FIR] Remove useless file argument from FirCallResolver
This commit is contained in:
@@ -66,7 +66,7 @@ class FirCallResolver(
|
|||||||
inferenceComponents.session.callConflictResolverFactory
|
inferenceComponents.session.callConflictResolverFactory
|
||||||
.create(TypeSpecificityComparator.NONE, inferenceComponents)
|
.create(TypeSpecificityComparator.NONE, inferenceComponents)
|
||||||
|
|
||||||
fun resolveCallAndSelectCandidate(functionCall: FirFunctionCall, file: FirFile): FirFunctionCall {
|
fun resolveCallAndSelectCandidate(functionCall: FirFunctionCall): FirFunctionCall {
|
||||||
qualifiedResolver.reset()
|
qualifiedResolver.reset()
|
||||||
@Suppress("NAME_SHADOWING")
|
@Suppress("NAME_SHADOWING")
|
||||||
var functionCall = functionCall.transformExplicitReceiver(transformer, ResolutionMode.ContextIndependent)
|
var functionCall = functionCall.transformExplicitReceiver(transformer, ResolutionMode.ContextIndependent)
|
||||||
@@ -150,7 +150,7 @@ class FirCallResolver(
|
|||||||
return ResolutionResult(info, result.currentApplicability, reducedCandidates)
|
return ResolutionResult(info, result.currentApplicability, reducedCandidates)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun <T : FirQualifiedAccess> resolveVariableAccessAndSelectCandidate(qualifiedAccess: T, file: FirFile): FirStatement {
|
fun <T : FirQualifiedAccess> resolveVariableAccessAndSelectCandidate(qualifiedAccess: T): FirStatement {
|
||||||
val callee = qualifiedAccess.calleeReference as? FirSimpleNamedReference ?: return qualifiedAccess
|
val callee = qualifiedAccess.calleeReference as? FirSimpleNamedReference ?: return qualifiedAccess
|
||||||
|
|
||||||
qualifiedResolver.initProcessingQualifiedAccess(qualifiedAccess, callee)
|
qualifiedResolver.initProcessingQualifiedAccess(qualifiedAccess, callee)
|
||||||
|
|||||||
+3
-3
@@ -128,7 +128,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
|||||||
qualifiedAccessExpression
|
qualifiedAccessExpression
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
val transformedCallee = callResolver.resolveVariableAccessAndSelectCandidate(qualifiedAccessExpression, file)
|
val transformedCallee = callResolver.resolveVariableAccessAndSelectCandidate(qualifiedAccessExpression)
|
||||||
// NB: here we can get raw expression because of dropped qualifiers (see transform callee),
|
// NB: here we can get raw expression because of dropped qualifiers (see transform callee),
|
||||||
// so candidate existence must be checked before calling completion
|
// so candidate existence must be checked before calling completion
|
||||||
if (transformedCallee is FirQualifiedAccessExpression && transformedCallee.candidate() != null) {
|
if (transformedCallee is FirQualifiedAccessExpression && transformedCallee.candidate() != null) {
|
||||||
@@ -158,7 +158,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
|||||||
val completeInference =
|
val completeInference =
|
||||||
try {
|
try {
|
||||||
val initialExplicitReceiver = functionCall.explicitReceiver
|
val initialExplicitReceiver = functionCall.explicitReceiver
|
||||||
val resultExpression = callResolver.resolveCallAndSelectCandidate(functionCall, file)
|
val resultExpression = callResolver.resolveCallAndSelectCandidate(functionCall)
|
||||||
val resultExplicitReceiver = resultExpression.explicitReceiver
|
val resultExplicitReceiver = resultExpression.explicitReceiver
|
||||||
if (initialExplicitReceiver !== resultExplicitReceiver && resultExplicitReceiver is FirQualifiedAccess) {
|
if (initialExplicitReceiver !== resultExplicitReceiver && resultExplicitReceiver is FirQualifiedAccess) {
|
||||||
// name.invoke() case
|
// name.invoke() case
|
||||||
@@ -400,7 +400,7 @@ class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransformer) :
|
|||||||
): CompositeTransformResult<FirStatement> {
|
): CompositeTransformResult<FirStatement> {
|
||||||
// val resolvedAssignment = transformCallee(variableAssignment)
|
// val resolvedAssignment = transformCallee(variableAssignment)
|
||||||
variableAssignment.annotations.forEach { it.accept(this, data) }
|
variableAssignment.annotations.forEach { it.accept(this, data) }
|
||||||
val resolvedAssignment = callResolver.resolveVariableAccessAndSelectCandidate(variableAssignment, file)
|
val resolvedAssignment = callResolver.resolveVariableAccessAndSelectCandidate(variableAssignment)
|
||||||
val result = if (resolvedAssignment is FirVariableAssignment) {
|
val result = if (resolvedAssignment is FirVariableAssignment) {
|
||||||
val completeAssignment = callCompleter.completeCall(resolvedAssignment, noExpectedType) // TODO: check
|
val completeAssignment = callCompleter.completeCall(resolvedAssignment, noExpectedType) // TODO: check
|
||||||
val expectedType = components.typeFromCallee(completeAssignment)
|
val expectedType = components.typeFromCallee(completeAssignment)
|
||||||
|
|||||||
Reference in New Issue
Block a user