luaur-compiler 0.1.3

Luau source-to-bytecode compiler (Rust).
Documentation
use crate::records::cost::Cost;
use crate::records::cost_visitor::CostVisitor;
use luaur_ast::records::ast_stat_for_in::AstStatForIn;

impl CostVisitor {
    pub fn visit_ast_stat_for_in(&mut self, node: *mut core::ffi::c_void) -> bool {
        unsafe {
            let node = &*(node as *mut AstStatForIn);

            for expr_ptr in node.values.as_slice() {
                let cost = self.model(*expr_ptr);
                // C++ `result += model(...)` — saturating add (Cost::operator+=).
                self.result.add_assign(&cost);
            }

            self.loop_item(
                node.body,
                Cost {
                    model: 1,
                    constant: 0,
                },
                3,
            );
        }

        false
    }
}