diff --git a/crates/oxide_emit/src/module.rs b/crates/oxide_emit/src/module.rs index 7030bc7b..6f9ff1cd 100644 --- a/crates/oxide_emit/src/module.rs +++ b/crates/oxide_emit/src/module.rs @@ -433,9 +433,7 @@ fn stmt_has_top_level_await(stmt: &Statement) -> bool { .declarations .iter() .any(|d| d.init.as_ref().is_some_and(|i| expr_has_top_level_await(i))), - Declaration::ClassDeclaration(cls) => { - cls.super_class.as_ref().is_some_and(expr_has_top_level_await) - } + Declaration::ClassDeclaration(cls) => cls.super_class.as_ref().is_some_and(expr_has_top_level_await), _ => false, }), // `export default await ...` 是顶层 await;函数/类声明形态体不进入(同口径), diff --git a/crates/oxide_emit/tests/module_link_tests.rs b/crates/oxide_emit/tests/module_link_tests.rs index aedad2b0..0c18bf66 100644 --- a/crates/oxide_emit/tests/module_link_tests.rs +++ b/crates/oxide_emit/tests/module_link_tests.rs @@ -603,12 +603,8 @@ fn if_test_await_makes_module_async() { /// 表达式)是顶层 await,模块标记异步、体 await 编译为 AWAIT;类体不进入游走。 #[test] fn extends_await_makes_module_async() { - let (ir, _) = emit_module( - "export class A extends (await Promise.resolve(1)) {}", - "./entry.js", - &[], - ) - .expect("extends (await ...) 模块应编译成功"); + let (ir, _) = emit_module("export class A extends (await Promise.resolve(1)) {}", "./entry.js", &[]) + .expect("extends (await ...) 模块应编译成功"); assert!(ir.is_async, "extends (await ...) 应标记模块异步求值"); assert_eq!( ir.insts.iter().filter(|i| i.op == OpCode::AWAIT).count(),