From 71844f81f4bbfce4bea19e7b25be17f21060cfd9 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Fri, 12 May 2023 09:06:27 +0200 Subject: [PATCH] [psi] decompiled code doesn't have function bodies otherwise AST for decompiled code would be loaded by findChildByClass call ^ KTIJ-25047 --- .../org/jetbrains/kotlin/psi/KtNamedFunction.java | 12 ++++++++---- .../org/jetbrains/kotlin/psi/KtPropertyAccessor.java | 9 +++++++-- .../jetbrains/kotlin/psi/KtSecondaryConstructor.kt | 10 ++++++++-- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtNamedFunction.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtNamedFunction.java index 4c113c36e58..1a816eb5e84 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtNamedFunction.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtNamedFunction.java @@ -23,10 +23,8 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiModifiableCodeBlock; import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.util.AstLoadingFilter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.jetbrains.kotlin.KtNodeTypes; import org.jetbrains.kotlin.lexer.KtTokens; import org.jetbrains.kotlin.psi.psiUtil.KtPsiUtilKt; import org.jetbrains.kotlin.psi.stubs.KotlinFunctionStub; @@ -142,8 +140,14 @@ public class KtNamedFunction extends KtTypeParameterListOwnerStub { override fun getContainingClassOrObject() = parent.parent as KtClassOrObject override fun getBodyExpression(): KtBlockExpression? { - if (stub?.hasBody() == false) { - return null + val stub = stub + if (stub != null) { + if (stub.hasBody() == false) { + return null + } + if (containingKtFile.isCompiled) { + return null + } } return findChildByClass(KtBlockExpression::class.java) }