[NI] Fix ambiguity when there are no applicable candidates

#KT-35064 Fixed
This commit is contained in:
Mikhail Zarechenskiy
2020-01-10 13:57:22 +03:00
parent 8d3e4a2965
commit 6fe61c9056
9 changed files with 90 additions and 2 deletions
@@ -30,6 +30,7 @@ import org.jetbrains.kotlin.resolve.calls.results.PlatformOverloadsSpecificityCo
import org.jetbrains.kotlin.resolve.calls.results.TypeSpecificityComparator
import org.jetbrains.kotlin.resolve.calls.tower.ImplicitScopeTower
import org.jetbrains.kotlin.resolve.calls.tower.TowerResolver
import org.jetbrains.kotlin.resolve.calls.tower.isInapplicable
import org.jetbrains.kotlin.types.UnwrappedType
@@ -79,6 +80,10 @@ class CallableReferenceResolver(
}
if (candidates.size > 1 && resolvedAtom is EagerCallableReferenceAtom) {
if (candidates.all { it.resultingApplicability.isInapplicable }) {
diagnosticsHolder.addDiagnostic(CallableReferenceCandidatesAmbiguity(argument, candidates))
}
resolvedAtom.setAnalyzedResults(
candidate = null,
subResolvedAtoms = listOf(resolvedAtom.transformToPostponed())