[!NOTE]
This PR is best reviewed with hidden whitespace changes.
The functions maybe_hoist_and_create_proxy and maybe_hoist_and_create_proxy_to_cache currently accept either an optional function declaration (function: Option<&mut Box<Function>>) or an optional arrow function expression (arrow: Option<&mut ArrowExpr>). Most of their implementation is then split based on whether either of these parameters is passed.
However, in practice, all call sites always pass either a well-defined function declaration or a well-defined arrow function expression – never both, and never neither. As a result, it makes sense to split these functions and remove the use of Option for the parameters and return types.
The functions
maybe_hoist_and_create_proxy
andmaybe_hoist_and_create_proxy_to_cache
currently accept either an optional function declaration (function: Option<&mut Box<Function>>
) or an optional arrow function expression (arrow: Option<&mut ArrowExpr>
). Most of their implementation is then split based on whether either of these parameters is passed.However, in practice, all call sites always pass either a well-defined function declaration or a well-defined arrow function expression – never both, and never neither. As a result, it makes sense to split these functions and remove the use of
Option
for the parameters and return types.