diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/LLFirResolveTarget.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/LLFirResolveTarget.kt index 035f7f4f503..f88987728c9 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/LLFirResolveTarget.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/LLFirResolveTarget.kt @@ -61,17 +61,3 @@ sealed class LLFirResolveTarget( protected abstract fun toStringForTarget(): String } - -/** - * Resolves the target to the specified [phase]. - * The owning session must be a resolvable one. - */ -fun LLFirResolveTarget.resolve(phase: FirResolvePhase) { - val session = firFile.llFirResolvableSession - ?: errorWithAttachment("Resolvable session expected, got '${firFile.llFirSession::class.java}'") { - withEntry("firSession", firFile.llFirSession) { it.toString() } - } - - val lazyDeclarationResolver = session.moduleComponents.firModuleLazyDeclarationResolver - lazyDeclarationResolver.lazyResolveTarget(this, phase, towerDataContextCollector = null) -} \ No newline at end of file diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/targetUtils.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/targetUtils.kt index 080de45cf98..d55d299494c 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/targetUtils.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/targets/targetUtils.kt @@ -6,11 +6,29 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.api.targets import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirDesignationWithFile +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirResolvableSession +import org.jetbrains.kotlin.analysis.low.level.api.fir.sessions.llFirSession import org.jetbrains.kotlin.fir.FirElementWithResolveState +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.utils.exceptions.errorWithAttachment fun LLFirResolveTarget.forEachPathElementAndTarget(action: (FirElementWithResolveState) -> Unit) { path.forEach(action) forEachTarget(action) } -fun FirDesignationWithFile.asResolveTarget(): LLFirSingleResolveTarget = LLFirSingleResolveTarget(firFile, path, target) \ No newline at end of file +fun FirDesignationWithFile.asResolveTarget(): LLFirSingleResolveTarget = LLFirSingleResolveTarget(firFile, path, target) + +/** + * Resolves the target to the specified [phase]. + * The owning session must be a resolvable one. + */ +fun LLFirResolveTarget.resolve(phase: FirResolvePhase) { + val session = firFile.llFirResolvableSession + ?: errorWithAttachment("Resolvable session expected, got '${firFile.llFirSession::class.java}'") { + withEntry("firSession", firFile.llFirSession) { it.toString() } + } + + val lazyDeclarationResolver = session.moduleComponents.firModuleLazyDeclarationResolver + lazyDeclarationResolver.lazyResolveTarget(this, phase, towerDataContextCollector = null) +}