From cba77452f33b61b923726db429f337f7362b9e7e Mon Sep 17 00:00:00 2001 From: Mark Punzalan Date: Tue, 24 Aug 2021 08:15:21 +0000 Subject: [PATCH] FIR: Add candidates to ConeFunctionCallExpectedError. --- .../resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt | 4 +--- .../kotlin/fir/resolve/diagnostics/FirDiagnostics.kt | 6 +++++- 2 files changed, 6 insertions(+), 4 deletions(-) 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 c694de4c8df..3b6e1014aa9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -642,9 +642,7 @@ class FirCallResolver( val candidate = candidates.singleOrNull() val diagnostic = if (expectedCallKind == CallKind.Function) { - ConeFunctionCallExpectedError( - name, - candidate?.let { isValueParametersNotEmpty(it) } ?: candidates.any { isValueParametersNotEmpty(it) }) + ConeFunctionCallExpectedError(name, candidates.any { isValueParametersNotEmpty(it) }, candidates.map { it.symbol }) } else { val singleExpectedCandidate = expectedCandidates?.singleOrNull() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirDiagnostics.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirDiagnostics.kt index d9bfe8b8a70..ecbda656554 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirDiagnostics.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirDiagnostics.kt @@ -54,7 +54,11 @@ class ConeUnresolvedNameError(val name: Name) : ConeUnresolvedError { override val reason: String get() = "Unresolved name: $name" } -class ConeFunctionCallExpectedError(val name: Name, val hasValueParameters: Boolean) : ConeDiagnostic { +class ConeFunctionCallExpectedError( + val name: Name, + val hasValueParameters: Boolean, + override val candidateSymbols: Collection> +) : ConeDiagnosticWithCandidates { override val reason: String get() = "Function call expected: $name(${if (hasValueParameters) "..." else ""})" }