[LL FIR] encapsulate checkIsResolved for LLFirResolveTarget
In this way, only `LLFirLazyResolver` will be responsible for running and checking the resolution result. Also, this commit replaces redundant `checkIsResolved` for `LLFirResolveTarget` with cheaper `checkIsResolved` for declarations.
This commit is contained in:
committed by
Space Team
parent
c4bb5c6d8f
commit
141b187e37
+3
-5
@@ -33,6 +33,9 @@ internal sealed class LLFirLazyResolver(val resolverPhase: FirResolvePhase) {
|
||||
)
|
||||
|
||||
resolver.resolveDesignation()
|
||||
target.forEachTarget(::checkIsResolved)
|
||||
|
||||
checkCanceled()
|
||||
}
|
||||
|
||||
protected abstract fun createTargetResolver(target: LLFirResolveTarget): LLFirTargetResolver
|
||||
@@ -58,11 +61,6 @@ internal sealed class LLFirLazyResolver(val resolverPhase: FirResolvePhase) {
|
||||
)
|
||||
}
|
||||
|
||||
fun checkIsResolved(designation: LLFirResolveTarget) {
|
||||
designation.forEachTarget(::checkIsResolved)
|
||||
checkCanceled()
|
||||
}
|
||||
|
||||
private fun checkNestedDeclarationsAreResolved(target: FirElementWithResolveState) {
|
||||
if (target !is FirDeclaration) return
|
||||
|
||||
|
||||
+1
-3
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
|
||||
*/
|
||||
internal object LLFirLazyResolverRunner {
|
||||
/**
|
||||
* Runs [resolver][LLFirLazyResolver] associated with [phase] for [target] and checks if it finished correctly.
|
||||
* Runs [resolver][LLFirLazyResolver] associated with [phase] for [target].
|
||||
*
|
||||
* @see LLFirLazyPhaseResolverByPhase
|
||||
*/
|
||||
@@ -28,7 +28,5 @@ internal object LLFirLazyResolverRunner {
|
||||
LLFirGlobalResolveComponents.getInstance(target.session).lockProvider.withGlobalLock {
|
||||
lazyResolver.resolve(target)
|
||||
}
|
||||
|
||||
lazyResolver.checkIsResolved(target)
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -42,7 +42,7 @@ internal class LLFirReturnTypeCalculatorWithJump(
|
||||
return recursionInImplicitTypeRef()
|
||||
}
|
||||
|
||||
LLFirImplicitTypesLazyResolver.checkIsResolved(designation)
|
||||
LLFirImplicitTypesLazyResolver.checkIsResolved(declaration)
|
||||
return declaration.returnTypeRef as FirResolvedTypeRef
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -197,7 +197,7 @@ private class LLFirSuperTypeTargetResolver(
|
||||
visitedElements = visitedElements,
|
||||
).resolveDesignation()
|
||||
|
||||
LLFirLazyPhaseResolverByPhase.getByPhase(resolverPhase).checkIsResolved(target)
|
||||
LLFirSupertypeLazyResolver.checkIsResolved(target.target)
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user