code wiki / (root) / nx_forlist_probe.nx

nx_forlist_probe.nx source

↩ module page · 23 lines · 694 B

1// nx_forlist_probe.nx -- minimal @for VALUE-LIST repro, isolated from v8's nested/@concat cases. 2// expect_exit: 0 license_tier: ORIGINAL 3 4import "nx_syscalls.nx" 5 6func flp_w(s: *u8) -> i64 { 7 var n: i64 = 0 8 while s[n] != (0 as u8) { n = n + 1 } 9 sys_write(1, s, n) 10 return 0 11} 12 13@for(op in {add, sub, mul}) { 14 func flp_${op}_tag() -> i64 { return 7 } 15} 16 17func main() -> i64 { 18 if flp_add_tag() != 7 { flp_w("ADD FAIL\n" as *u8); return 1 } 19 if flp_sub_tag() != 7 { flp_w("SUB FAIL\n" as *u8); return 2 } 20 if flp_mul_tag() != 7 { flp_w("MUL FAIL\n" as *u8); return 3 } 21 flp_w("FORLIST-PROBE OK: {add, sub, mul} pasted via braced dollar-op\n" as *u8) 22 return 0 23}