code wiki / (root) / nx_aggregate_assignment_repro_t230.nx

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}