From f9c7cce11ddd912099ffe20bdb624a09be0e61da Mon Sep 17 00:00:00 2001 From: vldf Date: Thu, 27 Aug 2020 10:51:56 +0300 Subject: [PATCH] [FIR] Add some helper functions for checkers --- .../fir/analysis/checkers/FirHelpers.kt | 35 ++++++++----------- 1 file changed, 15 insertions(+), 20 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt index 2f2d1e83ddb..ffd7a40123e 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt @@ -5,13 +5,15 @@ package org.jetbrains.kotlin.fir.analysis.checkers -import com.intellij.lang.LighterASTNode -import com.intellij.openapi.util.Ref import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.fir.* +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.FirSymbolOwner +import org.jetbrains.kotlin.fir.Visibilities +import org.jetbrains.kotlin.fir.Visibility import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.expressions.FirFunctionCall import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.expressions.impl.FirEmptyExpressionBlock import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference @@ -310,21 +312,14 @@ fun FirClass<*>.findNonInterfaceSupertype(context: CheckerContext): FirTypeRef? } /** - * Returns the source element of the eq operator in assignment statement + * Returns KtModifierToken by Modality */ -fun FirSourceElement.eqOperatorSource(): FirSourceElement? { - return when (this) { - is FirLightSourceElement -> { - val children = Ref>() - val tree = tree - tree.getChildren(element, children) - val element = children.get().getOrNull(2) ?: return null - element.toFirLightSourceElement(element.startOffset, element.endOffset, tree) - } - is FirPsiSourceElement<*> -> { - val operator = psi.children.getOrNull(1) - operator?.toFirPsiSourceElement() - } - else -> null - } -} \ No newline at end of file +fun Modality.toToken(): KtModifierKeywordToken = when (this) { + Modality.FINAL -> KtTokens.FINAL_KEYWORD + Modality.SEALED -> KtTokens.SEALED_KEYWORD + Modality.OPEN -> KtTokens.OPEN_KEYWORD + Modality.ABSTRACT -> KtTokens.ABSTRACT_KEYWORD +} + +val FirFunctionCall.isIterator + get() = this.calleeReference.name.asString() == ""