oxc/crates/oxc_semantic
overlookmotel 7d61832284 refactor(semantic): pass Rc by value (#3586)
Same as #3550.

`Rc<T>` is already a reference, so instead of passing an `&Rc<T>` to a function and then `Rc::clone()` it in the function, it's better to clone it first and pass `Rc<T>` to the function.

`Rc<T>` and `&Rc<T>` are both 8 bytes, so it introduces no additional overhead to the function call, and reduces indirection.

This is a very small optimization. Am only submitting these changes for purpose of code tidying - making the patterns around `Rc` consistent and optimal throughout the codebase.

We should probably look if we can remove some of these `Rc`s entirely and replace them with plain `&` refs. I suspect `Rc` is not actually required in most places and we're only using it to avoid dealing with lifetimes, but it's sub-optimal as `Rc::clone` has a cost, whereas copying a `&` ref has none.
2024-06-08 11:18:58 +00:00
..
examples improvement(semantic/cfg): better CFG API (#3472) 2024-06-06 07:55:37 +00:00
src refactor(semantic): pass Rc by value (#3586) 2024-06-08 11:18:58 +00:00
tests/integration improvement(semantic/cfg): better break and continue flow. (#3462) 2024-06-06 07:55:31 +00:00
Cargo.toml Release crates v0.13.5 (#3584) 2024-06-08 16:44:50 +08:00
CHANGELOG.md Release crates v0.13.4 (#3582) 2024-06-07 17:41:11 +08:00