luaur-bytecode 0.1.3

Luau bytecode format and builder (Rust).
Documentation
use crate::enums::bc_block_edge_kind::BcBlockEdgeKind;
use crate::records::bc_op::BcOp;
use crate::records::bytecode_graph_parser::BytecodeGraphParser;

pub fn bytecode_graph_parser_is_unreachable(
    self_: &mut BytecodeGraphParser<'_>,
    block_op: BcOp,
) -> bool {
    if block_op == self_.func.entry_block {
        return false;
    }

    let predecessors = self_.func.block_op(block_op).predecessors.clone();
    for pred in &predecessors {
        if pred.kind == BcBlockEdgeKind::Loop {
            continue;
        }
        if !bytecode_graph_parser_is_unreachable(self_, pred.target) {
            return false;
        }
    }

    true
}