Files
ww/test/wcc/data/idxfield_compound_str/case.ww
Hojun-Cho 057e805cf0 test: migrate dotfield/idxfield compound-assign to @test + runww rejects, retire C twins (fold-3)
949_dotfield_compound + 949_idxfield_compound are one bug class (#133-lineage compound-assign load-op-store on field lvalues; #34/#33, #263 carve-out) sharing the combine + hard-error path, so the two C carriers fuse into one commit: 26 value rows -> test/lang @test row-tables (primitive-only asserts), 8 reject rows -> runww //ww:error dual-stage carriers. byteid floor 50->52.
2026-06-22 16:34:33 +09:00

15 lines
622 B
Plaintext

//ww:error "arr[i].field compound on str field"
// Lifted from test/wcc/949_idxfield_compound_run.c reject row "fld_he_str"
// (#33/rule-7): a compound assign on an indexed-element STR field is unwired in
// both stages and MUST loud-fail. The substring is the shared diagnostic body
// — byte-identical on both stages, pinned to "str field" so it cannot also
// match the float/slice/tagged rows (no file:line, no cstage "ww: " prefix —
// both differ cs vs ww).
package main;
type S = struct { f: str, g: i32 };
export fn main() i32 = {
let xs: [2]S = [S{f="a", g=0}, S{f="b", g=0}];
xs[0].f += "x";
return 0;
};