[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:
committed by
Space Team
parent
89ecd1e0e2
commit
8073e65162
+6
-2
@@ -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
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-7
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user