Don't add path instructions for newtypes that decay into their args

This commit is contained in:
Ayaz Hafiz 2022-07-21 14:57:17 -04:00 committed by Folkert
parent d4ad981448
commit eee13a4aa3
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C
5 changed files with 44 additions and 11 deletions

View file

@ -977,9 +977,16 @@ fn needs_tests(pattern: &Pattern) -> bool {
match pattern {
Identifier(_) | Underscore => false,
NewtypeDestructure { arguments, .. } => {
// Newtypes that only have one argument decay immediately into that argument, so no
// test for them is needed.
//
// Newtypes with > 1 argument decay into a struct of those arguments, and we'll need to
// read the appropriate argument in the struct when constructing the decision tree.
arguments.len() != 1
}
RecordDestructure(_, _)
| NewtypeDestructure { .. }
| AppliedTag { .. }
| OpaqueUnwrap { .. }
| BitLiteral { .. }