[NI] Report warning if candidate was chosen using only @OverloadResolutionByLambdaReturnType

This commit is contained in:
Dmitriy Novozhilov
2020-05-21 15:18:07 +03:00
parent 82ce2e7b7c
commit a604404bff
9 changed files with 64 additions and 3 deletions
@@ -155,6 +155,7 @@ class KotlinCallResolver(
if (maximallySpecificCandidates.size > 1) {
maximallySpecificCandidates = candidates.toMutableSet().apply { removeAll(candidatesWithAnnotation) }
maximallySpecificCandidates.singleOrNull()?.addDiagnostic(CandidateChosenUsingOverloadResolutionByLambdaAnnotation())
}
}
}
@@ -243,3 +243,9 @@ class NotEnoughInformationForLambdaParameter(
reporter.onCallArgument(lambdaArgument, this)
}
}
class CandidateChosenUsingOverloadResolutionByLambdaAnnotation : KotlinCallDiagnostic(RESOLVED) {
override fun report(reporter: DiagnosticReporter) {
reporter.onCall(this)
}
}