From cb76ea5d14675dedbac6c46e33613a2b181ddb84 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 23 May 2019 16:28:25 +0300 Subject: [PATCH] FIR resolve: do not launch overload conflict resolve for erroneous --- .../fir/resolve/transformers/FirBodyResolveTransformer.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index 9ca4df21a7e..1fbe8237a78 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -554,8 +554,12 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn val consumer = createFunctionConsumer(session, name, info, inferenceComponents) val result = resolver.runTowerResolver(consumer, implicitReceiverStack.asReversed()) val bestCandidates = result.bestCandidates() - val reducedCandidates = ConeOverloadConflictResolver(TypeSpecificityComparator.NONE, inferenceComponents) - .chooseMaximallySpecificCandidates(bestCandidates, discriminateGenerics = false) + val reducedCandidates = if (result.currentApplicability < CandidateApplicability.SYNTHETIC_RESOLVED) { + bestCandidates.toSet() + } else { + ConeOverloadConflictResolver(TypeSpecificityComparator.NONE, inferenceComponents) + .chooseMaximallySpecificCandidates(bestCandidates, discriminateGenerics = false) + } // fun isInvoke()