[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.KtFakeSourceElementKind
|
||||||
import org.jetbrains.kotlin.analysis.low.level.api.fir.LLFirModuleResolveComponents
|
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.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.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.fir.declarations.impl.FirPrimaryConstructor
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
|
|
||||||
@@ -90,7 +90,11 @@ internal object FileElementFactory {
|
|||||||
classMembersToResolve,
|
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.analysis.utils.errors.rethrowExceptionWithDetails
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
import org.jetbrains.kotlin.fir.FirElementWithResolveState
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
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.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
|
import org.jetbrains.kotlin.fir.resolve.transformers.FirImportResolveTransformer
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirTowerDataContextCollector
|
||||||
@@ -104,14 +100,15 @@ internal class LLFirModuleLazyDeclarationResolver(val moduleComponents: LLFirMod
|
|||||||
*/
|
*/
|
||||||
fun lazyResolveTarget(
|
fun lazyResolveTarget(
|
||||||
target: LLFirResolveTarget,
|
target: LLFirResolveTarget,
|
||||||
toPhase: FirResolvePhase
|
toPhase: FirResolvePhase,
|
||||||
|
towerDataContextCollector: FirTowerDataContextCollector?,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
lazyResolveTargets(
|
lazyResolveTargets(
|
||||||
targets = listOf(target),
|
targets = listOf(target),
|
||||||
moduleComponents.scopeSessionProvider.getScopeSession(),
|
moduleComponents.scopeSessionProvider.getScopeSession(),
|
||||||
toPhase,
|
toPhase,
|
||||||
towerDataContextCollector = null,
|
towerDataContextCollector,
|
||||||
)
|
)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
handleExceptionFromResolve(e, target, toPhase)
|
handleExceptionFromResolve(e, target, toPhase)
|
||||||
|
|||||||
Reference in New Issue
Block a user