package fixture // Not compiled. The ways round the provenance rule that the 2026-10-11 // re-review of Plan 6 Task 1a found, plus a forged serverText. Each one // must fail the gate (TestMovesProvenanceBypassesFail). type serverText struct{ spoken string } type moveJournal struct{ StuckReason string } func moveSay(out int, line string) {} func sayError(out int, err error) { moveSay(out, err.Error()) } // Bypass 3: the forwarding sink reassigns its own parameter. func sayRecorded(out int, text string) { text = "unreviewed reassignment" moveSay(out, text) } func saySpoken(out int, t serverText) {} func apiErrorFromBody(status int, body []byte) error { var e struct{ Error string } if json.Unmarshal(body, &e) == nil && e.Error != "" { return errors.New(e.Error) } return fmt.Errorf("unexpected response (status %d)", status) } // Bypass 1: the console's error decoder, fed literal JSON. func literalJSON(out int) { sayError(out, apiErrorFromBody(400, []byte(`{"error":"unreviewed copy"}`))) } // Bypass 2: a stuck reason written here, not read from an answer. func forgedStuck(out int) { j := moveJournal{StuckReason: "unreviewed stuck reason"} sayRecorded(out, j.StuckReason) } // Server text made outside its one maker. func forgedServer(out int) { saySpoken(out, serverText{spoken: "unreviewed server text"}) } // Server text read outside its one sink. func leaked(out int, t serverText) { moveSay(out, "the console says "+t.spoken) }