use luau_bytecode::builder::{BytecodeBuilder, BytecodeDumpFlags};
use luau_bytecode::opcodes::Opcode;
use luau_common::BString;
fn debug_remarks_dump() -> BString {
let mut builder = BytecodeBuilder::new();
let mut dump_flags = BytecodeDumpFlags::default();
dump_flags.set_code(true);
dump_flags.set_remarks(true);
builder.set_dump_flags(dump_flags);
let fid = builder.begin_function(0, false);
builder.add_debug_remark(format!("test remark #{}", 1));
builder.emit_abc(Opcode::LoadNil, 0, 0, 0);
builder.add_debug_remark(format!("test remark #{}", 2));
builder.add_debug_remark(format!("test remark #{}", 3));
builder.emit_abc(Opcode::Return, 0, 1, 0);
builder.end_function(1, 0, 0, 0);
builder.set_main_function(fid);
builder.finalize();
let _ = builder.get_bytecode();
builder.dump_function(0)
}
#[test]
fn debug_remark_dump_preserves_remark_order() {
assert_eq!(
debug_remarks_dump(),
b"\
REMARK test remark #1
LOADNIL R0
REMARK test remark #2
REMARK test remark #3
RETURN R0 0
"
);
}