diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-02-20 10:49:12 +0000 |
---|---|---|
committer | GitHub <[email protected]> | 2021-02-20 10:49:12 +0000 |
commit | 900ba711683e23a3e322730e6b7a913b350379eb (patch) | |
tree | 8b644487b66e8c085747429a46ef5745f39b1cc3 /crates/syntax | |
parent | 20a911f3cc2beb0409ab71cc1560648374745f7f (diff) | |
parent | c1d37f030f01b5227168a822ed61cb27e6c67429 (diff) |
Merge #7722
7722: Fix incorrect missing field diagnostic with box patterns r=Veykril a=lnicola
Closes #7711
Co-authored-by: Laurențiu Nicola <[email protected]>
Diffstat (limited to 'crates/syntax')
-rw-r--r-- | crates/syntax/src/ast/node_ext.rs | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/crates/syntax/src/ast/node_ext.rs b/crates/syntax/src/ast/node_ext.rs index 2fa7b8c1e..52ac97c84 100644 --- a/crates/syntax/src/ast/node_ext.rs +++ b/crates/syntax/src/ast/node_ext.rs | |||
@@ -381,11 +381,20 @@ impl ast::RecordPatField { | |||
381 | if let Some(name_ref) = self.name_ref() { | 381 | if let Some(name_ref) = self.name_ref() { |
382 | return Some(NameOrNameRef::NameRef(name_ref)); | 382 | return Some(NameOrNameRef::NameRef(name_ref)); |
383 | } | 383 | } |
384 | if let Some(ast::Pat::IdentPat(pat)) = self.pat() { | 384 | match self.pat() { |
385 | let name = pat.name()?; | 385 | Some(ast::Pat::IdentPat(pat)) => { |
386 | return Some(NameOrNameRef::Name(name)); | 386 | let name = pat.name()?; |
387 | Some(NameOrNameRef::Name(name)) | ||
388 | } | ||
389 | Some(ast::Pat::BoxPat(pat)) => match pat.pat() { | ||
390 | Some(ast::Pat::IdentPat(pat)) => { | ||
391 | let name = pat.name()?; | ||
392 | Some(NameOrNameRef::Name(name)) | ||
393 | } | ||
394 | _ => None, | ||
395 | }, | ||
396 | _ => None, | ||
387 | } | 397 | } |
388 | None | ||
389 | } | 398 | } |
390 | } | 399 | } |
391 | 400 | ||