diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/BaseConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/BaseConverter.kt index d3a94e3be12..c6dd15735af 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/BaseConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/BaseConverter.kt @@ -126,6 +126,16 @@ abstract class BaseConverter( return tree.getParent(this) } + fun LighterASTNode.getParents(): Sequence { + var node = this + return sequence { + while (true) { + yield(node) + node = node.getParent() ?: break + } + } + } + fun LighterASTNode?.getChildNodesByType(type: IElementType): List { return this?.forEachChildrenReturnList { node, container -> when (node.tokenType) { diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt index 7def4ad4f41..5cf75ad4e89 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt @@ -1410,7 +1410,7 @@ class DeclarationsConverter( return if (!stubMode) { val blockTree = LightTree2Fir.buildLightTreeBlockExpression(block.asText) return DeclarationsConverter( - baseSession, baseScopeProvider, stubMode, blockTree, offset = tree.getStartOffset(block), context + baseSession, baseScopeProvider, stubMode, blockTree, offset = offset + tree.getStartOffset(block), context ).convertBlockExpression(blockTree.root) } else { val firExpression = buildExpressionStub()