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 6b94308477a..c3e1f494ff0 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 @@ -76,13 +76,22 @@ fun FirScope.getSingleVisibleClassifier( session: FirSession, bodyResolveComponents: BodyResolveComponents, name: Name -): FirClassifierSymbol<*>? = mutableSetOf>().apply { +): FirClassifierSymbol<*>? { + var result: FirClassifierSymbol<*>? = null + var isAmbiguousResult = false processClassifiersByName(name) { classifierSymbol -> if (!classifierSymbol.fir.isInvisibleOrHidden(session, bodyResolveComponents)) { - this.add(classifierSymbol) + if (result == classifierSymbol) return@processClassifiersByName + + if (result == null) { + result = classifierSymbol + } else { + isAmbiguousResult = true + } } } -}.singleOrNull() + return result.takeUnless { isAmbiguousResult } +} private fun FirDeclaration.isInvisibleOrHidden(session: FirSession, bodyResolveComponents: BodyResolveComponents): Boolean { if (this is FirMemberDeclaration) {