3142e64bbdf5f4ae513b9211ba806f0c7f0275e0
Introduces a `UsageInfo` struct to consolidate tracking of used and assigned locals, globals, and identities. Replaces multiple `HashSet` arguments in `collect_usage` with a single `UsageInfo` struct. Adds an `is_recursive` method to check for recursive calls within a node, considering global indices, local slots, and identity. Updates inlining logic to use `is_recursive` to prevent inlining of recursive functions or closures. This includes: - Checking for recursion when inlining a call to a lambda. - Checking for recursion when inlining a global variable that is a lambda. - Checking for recursion when inlining a closure. Updates `is_inlinable_value` to also check for closure recursion.
Description
No description provided
Languages
Rust
100%