[IR] Optimize SymbolTable.allUnbound

This commit is contained in:
Dmitriy Dolovov
2022-06-14 20:31:33 +04:00
parent 6a227236f8
commit 7c40fd31e3
@@ -1163,17 +1163,19 @@ inline fun <T> ReferenceSymbolTable.withReferenceScope(owner: IrDeclaration, blo
} }
val SymbolTable.allUnbound: Set<IrSymbol> val SymbolTable.allUnbound: Set<IrSymbol>
get() { get() = buildSet {
val r = mutableSetOf<IrSymbol>() fun addUnbound(symbols: Collection<IrSymbol>) {
r.addAll(unboundClasses) symbols.filterTo(this) { !it.isBound }
r.addAll(unboundConstructors) }
r.addAll(unboundEnumEntries)
r.addAll(unboundFields) addUnbound(unboundClasses)
r.addAll(unboundSimpleFunctions) addUnbound(unboundConstructors)
r.addAll(unboundProperties) addUnbound(unboundEnumEntries)
r.addAll(unboundTypeAliases) addUnbound(unboundFields)
r.addAll(unboundTypeParameters) addUnbound(unboundSimpleFunctions)
return r.filter { !it.isBound }.toSet() addUnbound(unboundProperties)
addUnbound(unboundTypeAliases)
addUnbound(unboundTypeParameters)
} }
fun SymbolTable.noUnboundLeft(message: String) { fun SymbolTable.noUnboundLeft(message: String) {