diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt index f3a71eaffd2..153f8b2d7d6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt @@ -107,8 +107,9 @@ private fun FirScope.getFirstClassifierOrNull( when { isSuccessCandidate && !isSuccessResult -> { - // any result is better than no result + // successful result is better than unsuccessful isSuccessResult = true + isAmbiguousResult = false result = SymbolWithSubstitutor(symbol, substitutor) } result?.symbol === symbol -> { @@ -116,8 +117,12 @@ private fun FirScope.getFirstClassifierOrNull( return@processClassifiersByNameWithSubstitution } result != null -> { - // results are similar => ambiguity - isAmbiguousResult = true + if (isSuccessResult == isSuccessCandidate) { + // results are similar => ambiguity + isAmbiguousResult = true + } else { + // ignore unsuccessful result if we have successful one + } } else -> { // result == null: any result is better than no result