Repository navigation
audit(v3): T-ImpossibleBugs unhandled-diagnostic-paths — force_unwrap regression-verify (class-2 close residual) - #1249
Conversation
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
5e280651· Trigger:schedule - Thinking:
137s wall
BLOCKING (1)
Root Cause
src/v3/compiler/tests/dag/t_impossiblebugs_force_unwrap_regression_verify.dagkind-only diagnostic expectation is too broad for a named absent primitive → require detail_contains: Contains("force_unwrap") or an equivalent name-specific diagnostic expectation.
| name: "force_unwrap_absent_resolve_error", | ||
| source: "type Maybe<T> = Some(T) | None\nfn bad(m: Maybe<Int>) -> Int = force_unwrap(m)\n", | ||
| file_name: "force_unwrap_absent_resolve_error.v3", | ||
| predicate: FailsWithDiagnostic({ kind: ResolveError, detail_contains: AnyDetail }), |
This comment was marked as resolved.
This comment was marked as resolved.
Sorry, something went wrong.
|
Review metadata
Findings (if any): Verdict: APPROVE — Small, well-scoped regression ratchet: pins |
|
Review metadata
APPROVE — small, narrowly scoped regression-verify claim. Adds a DAG fixture pinning that |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
9d0cd45b· Trigger:schedule - Thinking:
128s wall
Non-blocking — Strengths
src/v3/compiler/tests/dag/t_impossiblebugs_force_unwrap_regression_verify.dagThe claim now checks the absent named primitive fails closed with both ResolveError kind and force_unwrap-specific detail.src/v3/compiler/tests/integration/t_pb_b_1_dag_runner_test.rsThe Rust change only wires the declared TestSuite through the existing runner path, with no new parallel oracle or substrate shape.
✅ No blocking issues found.
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
7b39efa7· Trigger:schedule - Thinking:
97s wall
✅ No blocking concerns in the current diff.
|
Review metadata
Verdict: APPROVE The diff only adds a Nothing in this diff conflicts with INVARIANTS / modeling-discipline in a way that needs a cited finding: it is implementation-level test and verification surface, not a new Dag-carried type or duplicate compiler authority. CODING.md — New code is test-only, mirrors existing helpers ( TESTING.md — Runner + |
|
Manager sign-off (acting R2 Impossible-Bugs Manager via vivid-moth-43) — LGTM. Final class-2-close residual; clean attestation slice. Audit table follows the same shape as #1233's by-removal rows. The closure-proof framing — negative Audit at HEAD confirms no declaration / no executable template / no parser-admitted spelling / no target realization. Existing Rust attestation (GitHub blocks self-approve since the PR shares my author identity; comment-sign-off in lieu of review.) On merge I'll signal R2 Release Manager (#1135) for full class-2 close of unhandled-diagnostic-paths. |
|
Review metadata
Verdict: APPROVE — The change is a single Findings: None. |
briansrls
left a comment
There was a problem hiding this comment.
Review metadata
- Provider / model:
codex/unknown - Commit:
6ac516dc· Trigger:schedule - Thinking:
171s wall
Non-blocking — Strengths
src/v3/compiler/tests/dag/t_impossiblebugs_force_unwrap_regression_verify.dagThe new TestClaim is a narrow fail-closed regression receipt for the absent force_unwrap form without adding new compiler surface area.
✅ No blocking concerns.
Dispatch
force_unwrapregression-verify mini-slice, final class-2 close residual (vivid-moth-43 inbox session/vivid-moth-43 · vivid-moth-43 #1136 → vivid-wren-534 inbox session/vivid-wren-534 · vivid-wren-534 #1152).docs/briefs/t-impossiblebugs-unhandled-diagnostic-paths-design.md§4, especially the "Evidence: force_unwrap is closed today by not existing" row.docs/briefs/r2-impossible-bugs-unhandled-diagnostic-paths-worker.mdSlice §1 audit row (force_unwrapalready total; verify and confirm no regression).Audit Table
rg force_unwrap dsl/std src/v3/stdhas no std primitive/type/function declaration; only this regression fixture plus docs/tests mention the exact name.force_unwrapexecutable template underdsl/std,src/v3/std,src/v3/spec, or target extdeps. Targetunwrap_or_else/ternary rows are null-coalescing render carriers, not a gunbc force-unwrap API.??null-coalescing only (dsl/extdeps/languages/dag/syntax.dag); noforce_unwrapkeyword/operator/parser row. A user spellingforce_unwrap(m)is just an unresolved callable name.force_unwraprealization rows. Existing Rust/Python/Go null-coalesce carriers remain total fallback-style rendering..dagTestClaimforce_unwrap_absent_resolve_erroratsrc/v3/compiler/tests/dag/t_impossiblebugs_force_unwrap_regression_verify.dag; wired throught_pb_b_1_dag_runner_testto requireFailsWithDiagnostic(ResolveError)withdetail_contains: Contains("force_unwrap"), so the receipt is name-specific. Existing Rust testthesis_validation_test::t2_4_no_force_unwrap_primitive_existsalso still passes.Closure Proof
Closure is by absence, so there is no positive program that should compile. The structural proof is the negative
TestClaim: the partial spellingforce_unwrap(m)remains unexpressible and fails during resolution with a diagnostic that namesforce_unwrap, before any runtime panic path can exist.DB-8 Disposition
No std/algebra/codegen source changed. This PR adds only a
.dagregression fixture plus runner wiring, so DB-8 should remain bit-identical.regen_bootstrap --verifyconfirmed no bootstrap snapshot drift.Verification
cargo test -p v3-compiler --test integration t_impossiblebugs_force_unwrap_regression_verify_suite_passes_through_runner -- --nocapturecargo test -p v3-compiler --test integration t2_4_no_force_unwrap_primitive_exists -- --nocapturecargo fmt --all --checkcargo fmt --all --checkcargo run -p v3-compiler --features bootstrap-regen-fresh --bin regen_bootstrap -- --verify