[FIR] Refactor val FirElement.calleeReference utility
1. Convert it to `toReference()` function to make it consistent with other similar utilities 2. Provide the proper implementation ^KT-64975
This commit is contained in:
committed by
Space Team
parent
36958d585f
commit
bd9cb2b7e0
@@ -114,7 +114,7 @@ class FirCallResolver(
|
||||
val resultFunctionCall = if (candidate != null && candidate.callInfo != result.info) {
|
||||
// This branch support case for the call of the type `a.invoke()`
|
||||
// 1. Handle candidate for `a`
|
||||
(resolvedReceiver?.calleeReference as? FirNamedReferenceWithCandidate)?.candidate?.updateSourcesOfReceivers()
|
||||
(resolvedReceiver?.toReference() as? FirNamedReferenceWithCandidate)?.candidate?.updateSourcesOfReceivers()
|
||||
// 2. Handle candidate for `invoke`
|
||||
candidate.updateSourcesOfReceivers()
|
||||
functionCall.copyAsImplicitInvokeCall {
|
||||
|
||||
@@ -533,7 +533,7 @@ private fun getExpectedTypeWithImplicitIntegerCoercion(
|
||||
if (argument.isIntegerLiteralOrOperatorCall()) {
|
||||
argument.resolvedType
|
||||
} else {
|
||||
argument.calleeReference?.toResolvedCallableSymbol()?.takeIf {
|
||||
argument.toReference()?.toResolvedCallableSymbol()?.takeIf {
|
||||
it.rawStatus.isConst && it.isMarkedWithImplicitIntegerCoercion
|
||||
}?.resolvedReturnType
|
||||
}
|
||||
|
||||
@@ -785,7 +785,7 @@ internal object CheckHiddenDeclaration : ResolutionStage() {
|
||||
}
|
||||
|
||||
private fun FirElement.isSuperCall(): Boolean =
|
||||
this is FirQualifiedAccessExpression && explicitReceiver?.calleeReference is FirSuperReference
|
||||
this is FirQualifiedAccessExpression && explicitReceiver?.toReference() is FirSuperReference
|
||||
|
||||
private fun FirCallableSymbol<*>.isHidden(isSuperCall: Boolean): Boolean {
|
||||
val fir = fir
|
||||
|
||||
+1
-1
@@ -591,7 +591,7 @@ open class FirExpressionsResolveTransformer(transformer: FirAbstractBodyResolveT
|
||||
|
||||
val generator = GeneratorOfPlusAssignCalls(
|
||||
assignmentOperatorStatement,
|
||||
assignmentOperatorStatement.calleeReference?.source,
|
||||
assignmentOperatorStatement.toReference()?.source,
|
||||
operation,
|
||||
leftArgument,
|
||||
rightArgument
|
||||
|
||||
+1
-1
@@ -213,7 +213,7 @@ abstract class AbstractFirSpecificAnnotationResolveTransformer(
|
||||
|
||||
// If fully qualified, check that given package name matches the resolved one.
|
||||
val segments = generateSequence(receiver.explicitReceiver) { (it as? FirQualifiedAccessExpression)?.explicitReceiver }
|
||||
.mapNotNull { (it.calleeReference as? FirSimpleNamedReference)?.name?.identifier }
|
||||
.mapNotNull { (it.toReference() as? FirSimpleNamedReference)?.name?.identifier }
|
||||
.toList()
|
||||
|
||||
if (segments.isNotEmpty() && FqName.fromSegments(segments.asReversed()) != symbol.classId.packageFqName) {
|
||||
|
||||
Reference in New Issue
Block a user