@@ -1031,13 +1031,38 @@ gap is VM value-representation / intrinsic-dispatch cost (the next big lever).
10311031 (RS0007) / fd688f09 (RS0024) / e559c1f2 (RS0008) / 89559315 (RS0009). MAINTENANCE
10321032 NOTE: the RS0024 stdlib-type list is derived from the ` .rssi ` interfaces at
10331033 authoring time — regenerate if those interfaces change.
1034- - ** Diagnostics (step 2, milestone 2h — IN PROGRESS):** ** RS0021** NON_EXHAUSTIVE_
1035- MATCH — the last diagnostic. Needs scrutinee type inference (the analyzer reads
1036- ` hir_expr_type_name ` ), but the corpus is tractable: only ` _ ` short-circuits (a
1037- top-level bare ident is a Variant, not a catch-all); user-sum/Bool scrutinees are
1038- params or ` let x = ctor ` /local-call (locally inferable → all-variant coverage); and
1039- Option/Result-returning stdlib-call scrutinees fall through to the Some+None/Ok+Err
1040- fallback (which matches the analyzer). Ported spec + sub-agent in flight.
1034+ - ** Diagnostics (step 2, milestone 2h — DONE, 2026-07-02):** ** RS0021** NON_EXHAUSTIVE_
1035+ MATCH. Needs scrutinee type inference (the analyzer reads ` hir_expr_type_name ` ), but
1036+ the corpus is tractable: only ` _ ` short-circuits (a top-level bare ident is a Variant,
1037+ not a catch-all); user-sum/Bool scrutinees are params or ` let x = ctor ` /local-call
1038+ (locally inferable → all-variant coverage); Option/Result-returning stdlib-call
1039+ scrutinees fall through to the Some+None/Ok+Err fallback (matches the analyzer).
1040+ Ported the exhaustiveness engine (arm segmentation + scrutinee-root inference +
1041+ Option/Result/Bool/sum/List/tuple/fallback coverage) via sub-agent; 4 false-positives
1042+ hunted+fixed (` sum ` as a var name, ` match true ` , List slice patterns, ` ? ` -terminated
1043+ scrutinee). Commit 91c43189.
1044+ - ** Diagnostics (step 2, milestone 2i — DONE, 2026-07-03):** the remaining token-
1045+ decidable tail, via sub-agents (one crashed on an API error after 2 codes — its
1046+ uncommitted work was green and recovered; lesson: commit each code immediately).
1047+ Added ** RS0029** (await-outside-async), ** RS0023** (Fd outside internal boundary),
1048+ ** RS0035** (lower-name-conflict — ported is_valid_rust_ident + keyword set + default
1049+ lowering), ** RS0027** (unknown-protocol — visible = stdlib interfaces + file ` protocol `
1050+ decls; Managed/Struct/Resource excluded), ** RS0014/RS0018/RS0019** (noalloc/no_block/
1051+ no_panic body violations — RS0009-style call scan). ` CHECKER_TARGET_CODES ` = ** 24
1052+ codes** ; ` checker_parity_corpus ` byte-exact ** 619 files, 0 mismatches, 0 run-failures** .
1053+ Commits 240ce274/9715367f/78012146/3ad62a2b/be6fa09d.
1054+ - ** THE TOKEN-DECIDABLE TIER IS ESSENTIALLY EXHAUSTED (24 codes).** SKIPPED because they
1055+ need type inference / callee-signature resolution / borrow analysis (measured, not
1056+ ducked): RS0201 (unnamed-arg — needs callee visibility+kind), RS0013 (invalid-try —
1057+ operand/error-type inference), RS0022 (async-not-consumed — callee is_async), RS0036
1058+ (payload transferability), RS0202 (missing-data-effect — callee param-effects); RS0038
1059+ (char-literal) has 0 corpus fixtures. THE REMAINING BULK (~ 260 corpus files when ALL
1060+ ~ 100 codes are targeted → 305 mismatch): RS0207/0208/0209/0210 (type/return/control-
1061+ flow/operator mismatch), RS0301-0313 + RS06xx + RS07xx (ownership/borrow), RS0015
1062+ (unsupported-syntax), RS0101 (feature-gating), RS0025/0026 (unknown-field/binding).
1063+ These require a self-hosted TYPE-INFERENCE + BORROW-CHECKER engine — the whole semantic
1064+ frontend — which is the genuine next phase (its own multi-session effort), NOT more
1065+ token predicates.
10411066- ** Lexer spans (step 3):** added a ` len ` field to the shared ` Tok `
10421067 (= consumed source span ` j-i ` , matching the Rust lexer's ` index-start ` ) and made
10431068 ` lexer.rss ` emit the real ` <line>:<col>:<len> ` prefix. ` lexer_parity_corpus ` is
0 commit comments