test(compiler): compile_multiple_stmts 锚按 D-11 放宽为存在性断言
DCE 默认开启删除死 '1; 2' 链的 LOAD_CONST,仅剩顶层值 '3'。 精确计数断言 load_count >= 3 实测失败,放宽为 any(LOAD_CONST)。
This commit is contained in:
@@ -85,12 +85,10 @@ fn compile_negation() {
|
|||||||
fn compile_multiple_stmts() {
|
fn compile_multiple_stmts() {
|
||||||
let module = compile_source("1; 2; 3;");
|
let module = compile_source("1; 2; 3;");
|
||||||
|
|
||||||
let load_count = module
|
// D-11 放宽:Compiler 默认 DCE 开启,死 `1; 2` 链的 LOAD_CONST 被删除,
|
||||||
.bytecode
|
// 仅剩顶层值 `3` 的 LOAD_CONST(HALT 经 reg0 返回)。精确计数断言放宽为存在性断言。
|
||||||
.iter()
|
let has_load = module.bytecode.iter().any(|&i| opcode::opcode(i) == OpCode::LOAD_CONST);
|
||||||
.filter(|&&i| opcode::opcode(i) == OpCode::LOAD_CONST)
|
assert!(has_load, "expected at least one LOAD_CONST for the final value");
|
||||||
.count();
|
|
||||||
assert!(load_count >= 3);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user