refactor(transformer): logical assignment transform: reduce identifier cloning (#6296)

We already have to look up the reference, so use the `SymbolId` from that reference, rather than looking it up again in `clone_identifier_reference`.
This commit is contained in:
overlookmotel 2024-10-05 16:00:51 +00:00
parent 527f7c82ef
commit ac7a3edf31

View file

@ -130,12 +130,18 @@ impl<'a, 'ctx> LogicalAssignmentOperators<'a, 'ctx> {
) -> (Expression<'a>, AssignmentTarget<'a>) {
let reference = ctx.symbols_mut().get_reference_mut(ident.reference_id().unwrap());
*reference.flags_mut() = ReferenceFlags::Read;
let symbol_id = reference.symbol_id();
let left_expr = ctx.ast.expression_from_identifier_reference(ident.clone());
let assign_target =
AssignmentTarget::from(ctx.ast.simple_assignment_target_from_identifier_reference(
ctx.clone_identifier_reference(ident, ReferenceFlags::read_write()),
));
let ident = ctx.create_reference_id(
SPAN,
ident.name.clone(),
symbol_id,
ReferenceFlags::read_write(),
);
let assign_target = AssignmentTarget::from(
ctx.ast.simple_assignment_target_from_identifier_reference(ident),
);
(left_expr, assign_target)
}