From c6b703b5985e2ce9eb2bf2c763055d0a97012d39 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 19 Nov 2020 15:08:43 +0300 Subject: [PATCH] Simplify LighterASTNode.toFirLightSourceElement --- .../jetbrains/kotlin/fir/analysis/FirSourceChildren.kt | 2 +- .../kotlin/fir/analysis/checkers/FirModifierList.kt | 9 ++------- .../checkers/declaration/FirAnnotationArgumentChecker.kt | 2 +- .../FirExposedVisibilityDeclarationChecker.kt | 2 +- .../kotlin/fir/lightTree/converter/BaseConverter.kt | 2 +- .../jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt | 3 +-- .../src/org/jetbrains/kotlin/fir/FirSourceElement.kt | 5 +++-- 7 files changed, 10 insertions(+), 15 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/FirSourceChildren.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/FirSourceChildren.kt index b698d7cfff1..e12db21f4b4 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/FirSourceChildren.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/FirSourceChildren.kt @@ -37,5 +37,5 @@ private fun FirPsiSourceElement<*>.getChild(types: Set, index: Int private fun FirLightSourceElement.getChild(types: Set, index: Int, depth: Int): FirSourceElement? { val visitor = LighterTreeElementFinderByType(treeStructure, types, index, depth) - return visitor.find(lighterASTNode)?.let { it.toFirLightSourceElement(it.startOffset, it.endOffset, treeStructure) } + return visitor.find(lighterASTNode)?.toFirLightSourceElement(treeStructure) } \ No newline at end of file diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirModifierList.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirModifierList.kt index ec7b5f02374..b88e1d13139 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirModifierList.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirModifierList.kt @@ -76,11 +76,6 @@ val FirModifier<*>.lightNode: LighterASTNode? get() = (this as? FirLightModifier val FirModifier<*>.source: FirSourceElement? get() = when (this) { - is FirPsiModifier -> this.psi?.toFirPsiSourceElement() - is FirLightModifier -> { - // TODO pretty sure I got offsets wrong here - val startOffset = tree.getStartOffset(node) - val endOffset = tree.getEndOffset(node) - node.toFirLightSourceElement(startOffset, endOffset, tree) - } + is FirPsiModifier -> psi?.toFirPsiSourceElement() + is FirLightModifier -> node.toFirLightSourceElement(tree) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationArgumentChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationArgumentChecker.kt index 6ec8f2a054c..f30abc5408c 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationArgumentChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationArgumentChecker.kt @@ -243,7 +243,7 @@ object FirAnnotationArgumentChecker : FirBasicDeclarationChecker() { is FirLightSourceElement -> { val elementOfParent = source.treeStructure.getParent(source.lighterASTNode) ?: source.lighterASTNode - elementOfParent.toFirLightSourceElement(elementOfParent.startOffset, elementOfParent.endOffset, source.treeStructure) + elementOfParent.toFirLightSourceElement(source.treeStructure) } else -> source diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt index ea7ad8510fa..4b7bebfdca6 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt @@ -236,7 +236,7 @@ object FirExposedVisibilityDeclarationChecker : FirMemberDeclarationChecker() { val kidsRef = Ref>() this.treeStructure.getChildren(lighterASTNode, kidsRef) val identifier = kidsRef.get().find { it?.tokenType == KtTokens.IDENTIFIER } - identifier?.toFirLightSourceElement(this.treeStructure.getStartOffset(identifier), this.treeStructure.getEndOffset(identifier), this.treeStructure) + identifier?.toFirLightSourceElement(this.treeStructure) } } 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 f4d4edf9b3d..d383fb15399 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 @@ -32,7 +32,7 @@ open class BaseConverter( override fun LighterASTNode.toFirSourceElement(kind: FirFakeSourceElementKind?): FirLightSourceElement { val startOffset = offset + tree.getStartOffset(this) val endOffset = offset + tree.getEndOffset(this) - return toFirLightSourceElement(startOffset, endOffset, tree, kind ?: FirRealSourceElementKind) + return toFirLightSourceElement(tree, kind ?: FirRealSourceElementKind, startOffset, endOffset) } override val LighterASTNode.elementType: IElementType diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt index 9573f985fba..bfbca1c97d9 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/ValueParameter.kt @@ -46,8 +46,7 @@ class ValueParameter( val parameterSource = firValueParameter.source as? FirLightSourceElement val parameterNode = parameterSource?.lighterASTNode source = parameterNode?.toFirLightSourceElement( - parameterSource.startOffset, parameterSource.endOffset, parameterSource.treeStructure, - FirFakeSourceElementKind.PropertyFromParameter + parameterSource.treeStructure, FirFakeSourceElementKind.PropertyFromParameter ) this.session = session origin = FirDeclarationOrigin.Source diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSourceElement.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSourceElement.kt index fde7bee3463..d0907c15124 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSourceElement.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirSourceElement.kt @@ -288,7 +288,8 @@ inline fun PsiElement.toFirPsiSourceElement(kind: FirSourceElementKind = FirReal @Suppress("NOTHING_TO_INLINE") inline fun LighterASTNode.toFirLightSourceElement( - startOffset: Int, endOffset: Int, tree: FlyweightCapableTreeStructure, - kind: FirSourceElementKind = FirRealSourceElementKind + kind: FirSourceElementKind = FirRealSourceElementKind, + startOffset: Int = this.startOffset, + endOffset: Int = this.endOffset ): FirLightSourceElement = FirLightSourceElement(this, startOffset, endOffset, tree, kind)