diff --git a/analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode/delegatedProperty.kt b/analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode/delegatedProperty.kt
new file mode 100644
index 00000000000..aff353d846d
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode/delegatedProperty.kt
@@ -0,0 +1 @@
+val p: String by
\ No newline at end of file
diff --git a/analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode/delegatedProperty.txt b/analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode/delegatedProperty.txt
new file mode 100644
index 00000000000..3c7916cfe5c
--- /dev/null
+++ b/analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode/delegatedProperty.txt
@@ -0,0 +1,9 @@
+KT element: KtProperty
+FIR element: FirPropertyImpl
+FIR source kind: KtRealSourceElementKind
+
+FIR element rendered:
+public final val p: R|kotlin/String|by ERROR_EXPR(Should have delegate)
+ public get(): R|kotlin/String| {
+ ^ D|/p|.#(Null(null), ::R|/p|)
+ }
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java
index e80f08ca688..40e12d048fc 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java
@@ -579,6 +579,12 @@ public class OutOfContentRootGetOrBuildFirTestGenerated extends AbstractOutOfCon
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
+ @Test
+ @TestMetadata("delegatedProperty.kt")
+ public void testDelegatedProperty() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode/delegatedProperty.kt");
+ }
+
@Test
@TestMetadata("javaClassLiteral.kt")
public void testJavaClassLiteral() throws Exception {
diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java
index bb6d4edae38..e442c80790d 100644
--- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java
+++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java
@@ -579,6 +579,12 @@ public class SourceGetOrBuildFirTestGenerated extends AbstractSourceGetOrBuildFi
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
+ @Test
+ @TestMetadata("delegatedProperty.kt")
+ public void testDelegatedProperty() throws Exception {
+ runTest("analysis/low-level-api-fir/testdata/getOrBuildFir/invalidCode/delegatedProperty.kt");
+ }
+
@Test
@TestMetadata("javaClassLiteral.kt")
public void testJavaClassLiteral() throws Exception {
diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt
index 2f663b5a5eb..cfc1a6375cf 100644
--- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt
+++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt
@@ -1814,7 +1814,9 @@ open class RawFirBuilder(
buildOrLazyExpression(expression.toFirSourceElement()) {
expression.toFirExpression("Should have delegate")
}
- } ?: buildErrorExpression { ConeSimpleDiagnostic("Should have delegate", DiagnosticKind.ExpressionExpected) }
+ } ?: buildErrorExpression {
+ diagnostic = ConeSimpleDiagnostic("Should have delegate", DiagnosticKind.ExpressionExpected)
+ }
val delegateBuilder = FirWrappedDelegateExpressionBuilder().apply {
val delegateExpression = extractDelegateExpression()