diff options
| author | Wyatt Herkamp <wherkamp@gmail.com> | 2024-06-20 08:54:23 -0400 |
|---|---|---|
| committer | Wyatt Herkamp <wherkamp@gmail.com> | 2024-06-20 08:55:05 -0400 |
| commit | edd66a754e646a9b17a5b2a71632b4e933a7dafe (patch) | |
| tree | 98928555d409e669f80030cd854a2d1d11bc2323 | |
| parent | 48b6f28b0e1051b6e525d7e6cc32c6bfe983cef2 (diff) | |
| download | rust-edd66a754e646a9b17a5b2a71632b4e933a7dafe.tar.gz rust-edd66a754e646a9b17a5b2a71632b4e933a7dafe.zip | |
Check that Expr is none before adding fixup
| -rw-r--r-- | src/tools/rust-analyzer/crates/hir-expand/src/fixup.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-expand/src/fixup.rs b/src/tools/rust-analyzer/crates/hir-expand/src/fixup.rs index eadb2e19d12..9fdf4aa4f7c 100644 --- a/src/tools/rust-analyzer/crates/hir-expand/src/fixup.rs +++ b/src/tools/rust-analyzer/crates/hir-expand/src/fixup.rs @@ -277,7 +277,7 @@ pub(crate) fn fixup_syntax( }, ast::RecordExprField(it) => { if let Some(colon) = it.colon_token() { - if it.name_ref().is_some() { + if it.name_ref().is_some() && it.expr().is_none() { append.insert(colon.into(), vec![ Leaf::Ident(Ident { text: "__ra_fixup".into(), @@ -844,6 +844,20 @@ fn foo () {R {f : __ra_fixup}} } #[test] + fn no_fixup_record_ctor_field() { + check( + r#" +fn foo() { + R { f: a } +} +"#, + expect![[r#" +fn foo () {R {f : a}} +"#]], + ) + } + + #[test] fn fixup_arg_list() { check( r#" |
