Fix incorrect missing field diagnostic with box patterns

This commit is contained in:
Laurențiu Nicola 2021-02-20 12:36:17 +02:00
parent 20a911f3cc
commit af4148970a

View File

@ -381,11 +381,20 @@ impl ast::RecordPatField {
if let Some(name_ref) = self.name_ref() {
return Some(NameOrNameRef::NameRef(name_ref));
}
if let Some(ast::Pat::IdentPat(pat)) = self.pat() {
let name = pat.name()?;
return Some(NameOrNameRef::Name(name));
match self.pat() {
Some(ast::Pat::IdentPat(pat)) => {
let name = pat.name()?;
Some(NameOrNameRef::Name(name))
}
Some(ast::Pat::BoxPat(pat)) => match pat.pat() {
Some(ast::Pat::IdentPat(pat)) => {
let name = pat.name()?;
Some(NameOrNameRef::Name(name))
}
_ => None,
},
_ => None,
}
None
}
}