From 7ca2f764c2016de862127affbf0cbdbd4b6d4965 Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Tue, 15 Sep 2026 15:21:20 +0000 Subject: [PATCH] =?UTF-8?q?test:=20=E7=A7=BB=E9=99=A4=20var=20=E4=B8=8E=20?= =?UTF-8?q?let=20=E5=AF=84=E5=AD=98=E5=99=A8=E6=95=B0=E7=9B=B8=E7=AD=89?= =?UTF-8?q?=E7=9A=84=E8=BF=87=E6=97=B6=E6=96=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/oxide_compiler/tests/let_const_tests.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/crates/oxide_compiler/tests/let_const_tests.rs b/crates/oxide_compiler/tests/let_const_tests.rs index e720379f..291afb25 100644 --- a/crates/oxide_compiler/tests/let_const_tests.rs +++ b/crates/oxide_compiler/tests/let_const_tests.rs @@ -9,11 +9,13 @@ fn hash_var_let_const_differ() { let let_ast = oxide_parser::parse(&allocator, "let x = 1").unwrap(); let const_ast = oxide_parser::parse(&allocator, "const x = 1").unwrap(); - // 不同的 AST 结构应产出不同的字节码。 let var_module = compiler.compile(&var_ast).unwrap(); let let_module = compiler.compile(&let_ast).unwrap(); let const_module = compiler.compile(&const_ast).unwrap(); - assert_eq!(var_module.n_registers, let_module.n_registers); + // let 与 const 词法对称,寄存器数一致。 assert_eq!(let_module.n_registers, const_module.n_registers); + + // 顶层 var 因提升预声明与全局属性同步序言,编译产物与 let 不同。 + assert_ne!(var_module.bytecode, let_module.bytecode); }