runww: //ww:error arm asserts both stages reject (dual-stage)
A rejected program emits no .s, so the test-lang-byteid (T2) gate cannot cover wwstage-reject -- yet the retired C twins asserted that BOTH stages reject with the same diagnostic. runww's //ww:error arm was cstage-only, so migrating reject rows onto it would silently drop the wwstage-reject coverage the C twins carried. Run w6c_ww (wwstage) alongside w6c (cstage) on each //ww:error case and require both to fail with the shared diagnostic body present. The body is identical across stages; only cstage's leading prefix differs, so the substring matches the body alone (no file:line). An ERROR row now reports PASS dual / FAIL cstage / FAIL wwstage. w6c_ww resolves off the same $BIN as the C twins -- no new harness threading. Two pilot reject cases (runww_dup_main_reject, runww_dup_type_reject) exercise the dual-stage path; the wwstage leg is proven non-vacuous (a cstage-rejects/wwstage-accepts case reports FAIL wwstage). Prerequisite for migrating fold-3 reject rows onto runww.
This commit is contained in:
8
test/wcc/data/runww_dup_main_reject/case.ww
Normal file
8
test/wcc/data/runww_dup_main_reject/case.ww
Normal file
@@ -0,0 +1,8 @@
|
||||
//ww:error "duplicate fn main"
|
||||
// Pilot for #7a: two `fn main` definitions must be LOUD-rejected by BOTH
|
||||
// stages. The substring is the shared diagnostic body (no file:line prefix,
|
||||
// which differs cstage vs wwstage) — the #20 non-vacuity anchor and the
|
||||
// dual-stage (w6c AND w6c_ww) reject-coverage proof.
|
||||
package main;
|
||||
fn main() i32 = { return 0; };
|
||||
fn main() i32 = { return 1; };
|
||||
9
test/wcc/data/runww_dup_type_reject/case.ww
Normal file
9
test/wcc/data/runww_dup_type_reject/case.ww
Normal file
@@ -0,0 +1,9 @@
|
||||
//ww:error "duplicate type t"
|
||||
// Pilot for #7a: a redefined type alias must be LOUD-rejected by BOTH stages.
|
||||
// The substring is the shared diagnostic body (no file:line prefix, which
|
||||
// differs cstage vs wwstage) — the #20 non-vacuity anchor and the dual-stage
|
||||
// (w6c AND w6c_ww) reject-coverage proof.
|
||||
package main;
|
||||
type t = i32;
|
||||
type t = i64;
|
||||
fn main() i32 = { return 0; };
|
||||
Reference in New Issue
Block a user