From bf453674b9b3dde5a2635443ae260ea9d04a7946 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 21 Oct 2021 14:49:39 +0300 Subject: [PATCH] [FIR] Make LighterASTNode.getChildren utility return list of not null nodes --- .../jetbrains/kotlin/fir/analysis/checkers/FirKeywordUtils.kt | 4 ++-- .../jetbrains/kotlin/fir/analysis/checkers/SourceHelpers.kt | 2 +- .../kotlin/fir/analysis/checkers/extended/CanBeValChecker.kt | 2 +- .../fir/analysis/diagnostics/LightTreePositioningStrategy.kt | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirKeywordUtils.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirKeywordUtils.kt index 4cd66216a55..731859a6df4 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirKeywordUtils.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirKeywordUtils.kt @@ -41,7 +41,7 @@ sealed class FirModifierList { override val modifiers: List get() { val modifierNodes = modifierList.getChildren(tree) - return modifierNodes.filterNotNull() + return modifierNodes .filter { it.tokenType is KtModifierKeywordToken } .map { FirModifier.FirLightModifier(it, it.tokenType as KtModifierKeywordToken, tree, offsetDelta) } } @@ -86,7 +86,7 @@ fun FirSourceElement?.getModifierList(): FirModifierList? { null -> null is FirPsiSourceElement -> (psi as? KtModifierListOwner)?.modifierList?.let { FirModifierList.FirPsiModifierList(it) } is FirLightSourceElement -> { - val modifierListNode = lighterASTNode.getChildren(treeStructure).find { it?.tokenType == KtNodeTypes.MODIFIER_LIST } + val modifierListNode = lighterASTNode.getChildren(treeStructure).find { it.tokenType == KtNodeTypes.MODIFIER_LIST } ?: return null val offsetDelta = startOffset - lighterASTNode.startOffset FirModifierList.FirLightModifierList(modifierListNode, treeStructure, offsetDelta) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/SourceHelpers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/SourceHelpers.kt index 11730b2f4c1..bb8078a94b5 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/SourceHelpers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/SourceHelpers.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.KtModifierList import org.jetbrains.kotlin.psi.psiUtil.visibilityModifierType -internal fun LighterASTNode.getChildren(tree: FlyweightCapableTreeStructure): List { +internal fun LighterASTNode.getChildren(tree: FlyweightCapableTreeStructure): List { val children = Ref>() val count = tree.getChildren(this, children) return if (count > 0) children.get().filterNotNull() else emptyList() diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/CanBeValChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/CanBeValChecker.kt index 1aa3c337aaf..b208dff7ab7 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/CanBeValChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/CanBeValChecker.kt @@ -108,7 +108,7 @@ object CanBeValChecker : AbstractFirPropertyInitializationChecker() { private fun FirPropertySymbol.getDestructuringChildrenCount(): Int? { val source = source ?: return null return source.lighterASTNode.getChildren(source.treeStructure).count { - it?.tokenType == KtNodeTypes.DESTRUCTURING_DECLARATION_ENTRY + it.tokenType == KtNodeTypes.DESTRUCTURING_DECLARATION_ENTRY } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/LightTreePositioningStrategy.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/LightTreePositioningStrategy.kt index 903cdaec9cb..1e3fcc59e9e 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/LightTreePositioningStrategy.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/LightTreePositioningStrategy.kt @@ -83,10 +83,10 @@ private val FILLER_TOKENS = setOf( ) private fun LighterASTNode.nonFillerFirstChildOrSelf(tree: FlyweightCapableTreeStructure): LighterASTNode = - getChildren(tree).firstOrNull { it != null && !it.isFiller() } ?: this + getChildren(tree).firstOrNull { !it.isFiller() } ?: this internal fun LighterASTNode.nonFillerLastChildOrSelf(tree: FlyweightCapableTreeStructure): LighterASTNode = - getChildren(tree).lastOrNull { it != null && !it.isFiller() } ?: this + getChildren(tree).lastOrNull { !it.isFiller() } ?: this internal fun LighterASTNode.isFiller() = tokenType in FILLER_TOKENS