refactor(ast): remove unnecessary box from AssignmentTargetMaybeDefault::AssignmentTarget

This commit is contained in:
Boshen 2023-05-04 22:54:00 +08:00
parent 2c0dd408de
commit 64ed8613a4
No known key found for this signature in database
GPG key ID: 9C7A8C8AB22BEBD1
3 changed files with 5 additions and 2 deletions

View file

@ -741,7 +741,7 @@ pub struct ObjectAssignmentTarget<'a> {
#[derive(Debug, PartialEq, Hash)]
#[cfg_attr(feature = "serde", derive(Serialize), serde(untagged))]
pub enum AssignmentTargetMaybeDefault<'a> {
AssignmentTarget(Box<'a, AssignmentTarget<'a>>),
AssignmentTarget(AssignmentTarget<'a>),
AssignmentTargetWithDefault(Box<'a, AssignmentTargetWithDefault<'a>>),
}

View file

@ -68,6 +68,9 @@ fn no_bloat_enum_sizes() {
assert_eq!(size_of::<ModuleDeclarationKind>(), 16);
assert_eq!(size_of::<ClassElement>(), 16);
assert_eq!(size_of::<ExportDefaultDeclarationKind>(), 16);
assert_eq!(size_of::<AssignmentTargetPattern>(), 16);
assert_eq!(size_of::<AssignmentTargetMaybeDefault>(), 24);
assert_eq!(size_of::<AssignmentTargetProperty>(), 16);
assert_eq!(size_of::<TSLiteral>(), 16);
assert_eq!(size_of::<TSType>(), 16);
}

View file

@ -108,7 +108,7 @@ impl<'a> CoverGrammar<'a, Expression<'a>> for AssignmentTargetMaybeDefault<'a> {
}
expr => {
let target = AssignmentTarget::cover(expr, p)?;
Ok(AssignmentTargetMaybeDefault::AssignmentTarget(p.ast.alloc(target)))
Ok(AssignmentTargetMaybeDefault::AssignmentTarget(target))
}
}
}