diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompilerFacility.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompilerFacility.kt index 09b72507419..e1b4d17491b 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompilerFacility.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirCompilerFacility.kt @@ -44,8 +44,10 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.toFirDiagnostics import org.jetbrains.kotlin.fir.backend.* import org.jetbrains.kotlin.fir.backend.jvm.* import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.utils.hasBody import org.jetbrains.kotlin.fir.diagnostics.ConeSyntaxDiagnostic import org.jetbrains.kotlin.fir.languageVersionSettings +import org.jetbrains.kotlin.fir.lazy.AbstractFir2IrLazyDeclaration import org.jetbrains.kotlin.fir.pipeline.applyIrGenerationExtensions import org.jetbrains.kotlin.fir.pipeline.signatureComposerForJvmFir2Ir import org.jetbrains.kotlin.fir.psi @@ -435,7 +437,15 @@ internal class KtFirCompilerFacility( * [org.jetbrains.kotlin.backend.jvm.lower.ReflectiveAccessLowering.visitGetField] (or visitSetField) generates the access without * asking. */ - override fun isAccessorWithExplicitImplementation(accessor: IrSimpleFunction) = true + override fun isAccessorWithExplicitImplementation(accessor: IrSimpleFunction): Boolean { + if (accessor is AbstractFir2IrLazyDeclaration<*>) { + val fir = accessor.fir + if (fir is FirFunction && fir.hasBody) { + return true + } + } + return false + } } private class CompilerFacilityFir2IrExtensions(