aboutsummaryrefslogtreecommitdiff
path: root/crates/syntax
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-02-20 10:49:12 +0000
committerGitHub <[email protected]>2021-02-20 10:49:12 +0000
commit900ba711683e23a3e322730e6b7a913b350379eb (patch)
tree8b644487b66e8c085747429a46ef5745f39b1cc3 /crates/syntax
parent20a911f3cc2beb0409ab71cc1560648374745f7f (diff)
parentc1d37f030f01b5227168a822ed61cb27e6c67429 (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.rs17
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