Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/expr_store/lower.rs')
-rw-r--r--crates/hir-def/src/expr_store/lower.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/crates/hir-def/src/expr_store/lower.rs b/crates/hir-def/src/expr_store/lower.rs
index 33161c503e..48ccc1c0aa 100644
--- a/crates/hir-def/src/expr_store/lower.rs
+++ b/crates/hir-def/src/expr_store/lower.rs
@@ -1894,9 +1894,13 @@ impl<'db> ExprCollector<'db> {
};
let record_field_list = e.record_expr_field_list()?;
let ellipsis = record_field_list.dotdot_token().is_some();
- // We wanted to emit an error here if `record_field_list.spread().is_some()`,
- // but that's already a syntax error in rustc, so we decided not to.
- // See https://github.com/rust-lang/rust-analyzer/pull/22206#discussion_r3156097370
+ if let Some(spread) = record_field_list.spread() {
+ self.store.diagnostics.push(
+ ExpressionStoreDiagnostics::FruInDestructuringAssignment {
+ node: self.expander.in_file(AstPtr::new(&spread)),
+ },
+ );
+ }
let args = record_field_list
.fields()
.filter_map(|f| {