stage1 重构测试且成功00-05

This commit is contained in:
zzy
2026-07-05 21:45:43 +08:00
parent 51d8510b79
commit e2e0ebc21f
39 changed files with 1090 additions and 461 deletions

39
stage1/test15_defer.spl Normal file
View File

@@ -0,0 +1,39 @@
/* ===== 模块7高级特性 =====
* test15_defer — 延迟执行
* 难度3/5
* 验证点defer 语句、defer 块、多个 defer逆序执行
* 函数中 defer、块作用域 defer
*/
#[extern("vm")] fn vm_printf(fmt: *u8, ...) void;
fn with_cleanup() void {
defer vm_printf(" inner defer\n");
vm_printf(" inside with_cleanup\n");
}
fn main() i32 {
vm_printf("--- defer test ---\n");
/* defer 语句 */
defer vm_printf("defer1\n");
vm_printf("after defer1\n");
/* defer 块 */
defer {
vm_printf("defer block\n");
}
vm_printf("after defer block\n");
/* 函数内 defer */
with_cleanup();
vm_printf("after with_cleanup\n");
/* 多个 defer 应逆序执行 */
defer vm_printf("defer last\n");
defer vm_printf("defer middle\n");
defer vm_printf("defer first (should print third)\n");
vm_printf("--- defer test end ---\n");
ret 0;
}