From b694f063ac7f4da5c5cdf7187f895660fab8bc5a Mon Sep 17 00:00:00 2001 From: aleksandrina-streltsova Date: Fri, 10 Nov 2023 09:43:05 +0200 Subject: [PATCH] [FIR] Use callee reference source for resolved callable reference KTIJ-23906 --- .../analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt | 4 +++- .../src/org/jetbrains/kotlin/fir/FirCallResolver.kt | 7 ++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt index 0261eb394fe..0298166094a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/coneDiagnosticToFirDiagnostic.kt @@ -358,7 +358,9 @@ private fun mapInapplicableCandidateError( isError = rootCause.isError ) - is AdaptedCallableReferenceIsUsedWithReflection -> FirErrors.ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE.createOn(source) + is AdaptedCallableReferenceIsUsedWithReflection -> FirErrors.ADAPTED_CALLABLE_REFERENCE_AGAINST_REFLECTION_TYPE.createOn( + qualifiedAccessSource + ) else -> genericDiagnostic } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index a13cae46c86..f830c5052ee 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -381,6 +381,7 @@ class FirCallResolver( resolvedCallableReferenceAtom: ResolvedCallableReferenceAtom, ): Pair { val callableReferenceAccess = resolvedCallableReferenceAtom.reference + val calleeReference = callableReferenceAccess.calleeReference val lhs = resolvedCallableReferenceAtom.lhs val coneSubstitutor = constraintSystemBuilder.buildCurrentSubstitutor() as ConeSubstitutor val expectedType = resolvedCallableReferenceAtom.expectedType?.let(coneSubstitutor::substituteOrSelf) @@ -425,7 +426,7 @@ class FirCallResolver( reducedCandidates.size == 1 -> createConeDiagnosticForCandidateWithError(applicability, reducedCandidates.single()) else -> ConeUnresolvedReferenceError(info.name) }, - callableReferenceAccess.source + calleeReference.source ) resolvedCallableReferenceAtom.resultingReference = errorReference return applicability to false @@ -435,7 +436,7 @@ class FirCallResolver( val errorReference = buildReferenceWithErrorCandidate( info, ConeAmbiguityError(info.name, applicability, reducedCandidates), - callableReferenceAccess.source + calleeReference.source ) resolvedCallableReferenceAtom.resultingReference = errorReference return applicability to false @@ -454,7 +455,7 @@ class FirCallResolver( } val reference = createResolvedNamedReference( - callableReferenceAccess.calleeReference, + calleeReference, info.name, info, reducedCandidates,