Remove dependency of low-level-api-fir on psi2ir

Fix behavior of getPsiAsFirElementSource; previously expression was not
being fully deparenthesized.
This commit is contained in:
Alexander Udalov
2023-03-05 16:23:36 +01:00
committed by Space Team
parent d96112b944
commit b6e59fe8fd
2 changed files with 1 additions and 6 deletions
@@ -22,7 +22,6 @@ dependencies {
api(project(":js:js.config")) api(project(":js:js.config"))
testApi(project(":analysis:analysis-api-fir")) testApi(project(":analysis:analysis-api-fir"))
implementation(project(":compiler:frontend.common")) implementation(project(":compiler:frontend.common"))
implementation(project(":compiler:ir.psi2ir"))
implementation(project(":compiler:fir:entrypoint")) implementation(project(":compiler:fir:entrypoint"))
implementation(project(":analysis:analysis-api-providers")) implementation(project(":analysis:analysis-api-providers"))
implementation(project(":analysis:analysis-internal-utils")) implementation(project(":analysis:analysis-internal-utils"))
@@ -21,8 +21,6 @@ import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.isAncestor import org.jetbrains.kotlin.psi.psiUtil.isAncestor
import org.jetbrains.kotlin.psi.psiUtil.isObjectLiteral import org.jetbrains.kotlin.psi.psiUtil.isObjectLiteral
import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf import org.jetbrains.kotlin.psi.psiUtil.parentsWithSelf
import org.jetbrains.kotlin.psi2ir.deparenthesize
@ThreadSafe @ThreadSafe
internal class FirElementBuilder( internal class FirElementBuilder(
@@ -30,9 +28,8 @@ internal class FirElementBuilder(
) { ) {
companion object { companion object {
fun getPsiAsFirElementSource(element: KtElement): KtElement? { fun getPsiAsFirElementSource(element: KtElement): KtElement? {
val deparenthesized = if (element is KtPropertyDelegate) element.deparenthesize() else element val deparenthesized = if (element is KtExpression) KtPsiUtil.safeDeparenthesize(element) else element
return when { return when {
deparenthesized is KtParenthesizedExpression -> deparenthesized.deparenthesize()
deparenthesized is KtPropertyDelegate -> deparenthesized.expression ?: element deparenthesized is KtPropertyDelegate -> deparenthesized.expression ?: element
deparenthesized is KtQualifiedExpression && deparenthesized.selectorExpression is KtCallExpression -> { deparenthesized is KtQualifiedExpression && deparenthesized.selectorExpression is KtCallExpression -> {
/* /*
@@ -52,7 +49,6 @@ internal class FirElementBuilder(
} }
} }
fun doKtElementHasCorrespondingFirElement(ktElement: KtElement): Boolean = when (ktElement) { fun doKtElementHasCorrespondingFirElement(ktElement: KtElement): Boolean = when (ktElement) {
is KtImportList -> false is KtImportList -> false
else -> true else -> true