[FIR] Get rid of not needed set allocation in getSingleVisibleClassifier
This commit is contained in:
committed by
Space Team
parent
4f77434ea5
commit
8dcd4efbc1
+12
-3
@@ -76,13 +76,22 @@ fun FirScope.getSingleVisibleClassifier(
|
||||
session: FirSession,
|
||||
bodyResolveComponents: BodyResolveComponents,
|
||||
name: Name
|
||||
): FirClassifierSymbol<*>? = mutableSetOf<FirClassifierSymbol<*>>().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) {
|
||||
|
||||
Reference in New Issue
Block a user