luaur-compiler 0.1.2

Luau source-to-bytecode compiler (Rust).
Documentation
use crate::enums::type_compiler::Type;
use crate::records::compiler::Compiler;
use crate::records::loop_jump::LoopJump;
use luaur_ast::records::ast_node::AstNode;
use luaur_common::macros::luau_assert::LUAU_ASSERT;

impl Compiler {
    pub fn patch_loop_jumps(
        &mut self,
        node: *mut AstNode,
        old_jumps: usize,
        end_label: usize,
        cont_label: usize,
    ) {
        LUAU_ASSERT!(old_jumps <= self.loop_jumps.len());

        for i in old_jumps..self.loop_jumps.len() {
            let lj: &LoopJump = &self.loop_jumps[i];

            match lj.r#type {
                Type::Break => {
                    self.patch_jump(node, lj.label, end_label);
                }
                Type::Continue => {
                    self.patch_jump(node, lj.label, cont_label);
                }
                _ => {
                    LUAU_ASSERT!(!true);
                }
            }
        }
    }
}