CandidateApplicability: add K1/K2 prefixes when applicable

This commit is contained in:
Mikhail Glukhikh
2022-07-19 14:42:13 +02:00
committed by Space
parent 8e9e8302f7
commit 0611f3b8e7
10 changed files with 39 additions and 37 deletions
@@ -408,7 +408,7 @@ class FirCallResolver(
noSuccessfulCandidates -> {
val errorReference = buildErrorReference(
info,
if (applicability == CandidateApplicability.UNSUPPORTED) {
if (applicability == CandidateApplicability.K2_UNSUPPORTED) {
val unsupportedResolutionDiagnostic = reducedCandidates.firstOrNull()?.diagnostics?.firstOrNull() as? Unsupported
ConeUnsupported(unsupportedResolutionDiagnostic?.message ?: "", unsupportedResolutionDiagnostic?.source)
} else {
@@ -571,9 +571,9 @@ fun createConeDiagnosticForCandidateWithError(
): ConeDiagnostic {
return when (applicability) {
CandidateApplicability.HIDDEN -> ConeHiddenCandidateError(candidate)
CandidateApplicability.VISIBILITY_ERROR -> ConeVisibilityError(candidate.symbol)
CandidateApplicability.K2_VISIBILITY_ERROR -> ConeVisibilityError(candidate.symbol)
CandidateApplicability.INAPPLICABLE_WRONG_RECEIVER -> ConeInapplicableWrongReceiver(listOf(candidate))
CandidateApplicability.NO_COMPANION_OBJECT -> ConeNoCompanionObject(candidate)
CandidateApplicability.K2_NO_COMPANION_OBJECT -> ConeNoCompanionObject(candidate)
else -> ConeInapplicableCandidateError(applicability, candidate)
}
}
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents
import org.jetbrains.kotlin.fir.resolve.calls.tower.TowerGroup
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability.DSL_SCOPE_VIOLATION
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability.K2_DSL_SCOPE_VIOLATION
import org.jetbrains.kotlin.resolve.calls.tower.CandidateApplicability.K2_SYNTHETIC_RESOLVED
import org.jetbrains.kotlin.resolve.calls.tower.isSuccess
@@ -53,7 +53,7 @@ open class CandidateCollector(
shouldStopResolve && bestGroup < group
private val shouldStopResolve: Boolean
get() = currentApplicability == DSL_SCOPE_VIOLATION || currentApplicability >= K2_SYNTHETIC_RESOLVED
get() = currentApplicability == K2_DSL_SCOPE_VIOLATION || currentApplicability >= K2_SYNTHETIC_RESOLVED
val isSuccess: Boolean
get() = currentApplicability.isSuccess
@@ -123,7 +123,7 @@ class FirTypeResolverImpl(private val session: FirSession) : FirTypeResolver() {
var diagnostic: ConeDiagnostic? = null
if (!symbol.isVisible(useSiteFile, containingDeclarations, supertypeSupplier)) {
symbolApplicability = minOf(CandidateApplicability.VISIBILITY_ERROR, symbolApplicability)
symbolApplicability = minOf(CandidateApplicability.K2_VISIBILITY_ERROR, symbolApplicability)
diagnostic = ConeVisibilityError(symbol)
}