nx_aggregate_assignment_repro_t230.nx source
↩ module page · 20 lines · 1049 B
1// Minimal retained compiler debt: aggregate assignment into an embedded field.
2// This is a negative regression reproducer, not an accepted transport component.
3import "nx_syscalls.nx"
4import "nx_gate_verdict.nx"
5struct AgInner {first:i64,second:i64,third:i64}
6struct AgOuter {before:i64,value:AgInner,after:i64}
7func main()->i64{
8 let src:*AgInner=sys_mmap(__size_of(AgInner)) as *AgInner
9 let dst:*AgOuter=sys_mmap(__size_of(AgOuter)) as *AgOuter
10 src.first=11;src.second=22;src.third=33
11 dst.before=44;dst.after=55
12 dst.value=*src
13 let c:*i64=gv_ctr()
14 gv_check("embedded-aggregate-first",dst.value.first==11,c)
15 gv_check("embedded-aggregate-second",dst.value.second==22,c)
16 gv_check("embedded-aggregate-third",dst.value.third==33,c)
17 gv_check("neighbors-preserved",dst.before==44&&dst.after==55,c)
18 gv_kv("actual_first",dst.value.first);gv_kv("actual_second",dst.value.second);gv_kv("actual_third",dst.value.third)
19 return gv_verdict("AGGREGATE-ASSIGNMENT",c,"Minimized embedded aggregate assignment; no claim about other assignment forms.")
20}