[AA FIR] KtFirScopeProvider: avoid redundant resolve
This commit is contained in:
committed by
Space Team
parent
c522c6e29d
commit
5950820787
+3
-8
@@ -69,20 +69,15 @@ internal class KtFirScopeProvider(
|
||||
|
||||
private inline fun <T> KtSymbolWithMembers.withFirForScope(crossinline body: (FirClass) -> T): T? {
|
||||
return when (this) {
|
||||
is KtFirNamedClassOrObjectSymbol -> {
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.TYPES)
|
||||
body(firSymbol.fir)
|
||||
}
|
||||
is KtFirAnonymousObjectSymbol -> {
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.TYPES)
|
||||
body(firSymbol.fir)
|
||||
}
|
||||
is KtFirNamedClassOrObjectSymbol -> body(firSymbol.fir)
|
||||
is KtFirAnonymousObjectSymbol -> body(firSymbol.fir)
|
||||
is KtFirEnumEntrySymbol -> {
|
||||
firSymbol.lazyResolveToPhase(FirResolvePhase.BODY_RESOLVE)
|
||||
val initializer = firSymbol.fir.initializer ?: return null
|
||||
check(initializer is FirAnonymousObjectExpression) { "Unexpected enum entry initializer: ${initializer.javaClass}" }
|
||||
body(initializer.anonymousObject)
|
||||
}
|
||||
|
||||
else -> error { "Unknown KtSymbolWithDeclarations implementation ${this::class.qualifiedName}" }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user