[LL FIR] allow passing FirTowerDataContextCollector to

`LLFirModuleLazyDeclarationResolver.lazyResolveTarget`

so we can collect tower data context for any LLFirResolveTarget

^KT-57966
This commit is contained in:
Ilya Kirillov
2023-04-26 18:05:06 +02:00
committed by Space Team
parent 89ecd1e0e2
commit 8073e65162
2 changed files with 10 additions and 9 deletions
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.file.structure
import org.jetbrains.kotlin.KtFakeSourceElementKind
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.collectDesignationWithFile
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets.LLFirClassWithSpecificMembersResolveTarget
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor
import org.jetbrains.kotlin.psi.*
@@ -90,7 +90,11 @@ internal object FileElementFactory {
classMembersToResolve,
)
moduleComponents.firModuleLazyDeclarationResolver.lazyResolveTarget(designationWithMembers, FirResolvePhase.BODY_RESOLVE)
moduleComponents.firModuleLazyDeclarationResolver.lazyResolveTarget(
designationWithMembers,
FirResolvePhase.BODY_RESOLVE,
towerDataContextCollector = null
)
}
}
@@ -21,11 +21,7 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirEntry
import org.jetbrains.kotlin.analysis.utils.errors.rethrowExceptionWithDetails
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirElementWithResolveState
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.resolvePhase
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.resolve.ScopeSession
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector
@@ -104,14 +100,15 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
*/
fun lazyResolveTarget(
target: LLFirResolveTarget,
toPhase: FirResolvePhase
toPhase: FirResolvePhase,
towerDataContextCollector: FirTowerDataContextCollector?,
) {
try {
lazyResolveTargets(
targets = listOf(target),
moduleComponents.scopeSessionProvider.getScopeSession(),
toPhase,
towerDataContextCollector = null,
towerDataContextCollector,
)
} catch (e: Exception) {
handleExceptionFromResolve(e, target, toPhase)