Repository navigation
Class B skip-set: close through the one closure authority - #13464
Conversation
import_closure_dag_files walked import lines only, so a provider reached by reference was omitted from the Class B gate skip set — the same DESIGN §3 fork Co-authored-by: Cursor <cursoragent@cursor.com> #13437 closed on the fixture walker.
A second import-only walker in production is the fork the skip-set just closed; the tests module is the only consumer. Co-authored-by: Cursor <cursoragent@cursor.com>
The closure authority already follows import lines; a second walk was the fork review 76991 named. The import-only loop stays only as the test mutant. Co-authored-by: Cursor <cursoragent@cursor.com>
|
review 76991 (artifact)
|
briansrls
left a comment
There was a problem hiding this comment.
APPROVE / LAND at 55d6acda173bef931eaaf77ea85cbd9f0fe47237. No blocking findings in this change.
The §3 fork is actually removed. entry_resolve::import_closure_dag_files reads the declared seeds, obtains the index for the supplied pool, and delegates closure to extend_sources_to_both_closure_fixpoint; it no longer runs a separate production import BFS. The old algorithm remains only inside the #[cfg(test)] module as the discriminator. The Class B consumer retains its separate witness-layer and declared-import-pool demands, joins the resulting paths with the fixtures, and runs the gate rather than skipping when closure acquisition refuses.
The new controls EXECUTE on the merge path, not merely compile. At this head, .github/workflows/witnesses.yml runs on both pull_request and merge_group; rust-unit-tests invokes cargo test --release -p v1-compiler --lib, and the witnesses aggregate requires that lane to succeed for this same-repository PR. There is no #[ignore] on these three tests. The unit log for run 37454234741, job 112238135657, records all three as ok:
entry_resolve::import_closure_dag_files_controls::a_provider_reached_only_by_reference_is_closedentry_resolve::import_closure_dag_files_controls::a_real_error_in_the_entry_closure_still_refusesentry_resolve::import_closure_dag_files_controls::import_only_mutant_omits_the_reference_only_provider
The log explicitly checks out merge ref 78bd6327bfeaf65f8a79e6a7beddd95f9a3797aa, combining this requested head with 81df793e26dea6427e4264665eeb7b720fcda856. Result: 1,086 passed, 0 failed, 54 ignored, finished in 4.86s. None of these three controls is among the ignored tests. The associated workflow completed successfully.
The specimen tests the intended distinction: the entry imports mid, while mid names ProviderToken only through a qualified reference. The real closure contains its provider; the imports-only mutant omits it. The broken-entry control still closes that provider before asking the real resolver to refuse. These tests construct four local fixture files and supply only that fixture directory as their pool, rather than doing the whole-live-corpus acquisition that made the duplicate test in #13465 slow.
Evidence boundary: this verifies required execution and the suite's reported duration, not an individual <100ms timing certificate; this CI output does not report per-test execution times. I did not run a local compiler, clippy, or separate mutation experiment. The committed test-local mutant's execution is independently visible in CI. No additional walker, test lane, or coverage specimen is requested.
…e, pin the join. policy_entry_closure_sources stays a closure follow-up with no rewire here. resolve_transitively_bfs_legacy is the primary-root seed already in the table, not a discovered omission. Completeness is the head-pinned search join, not an unbounded exhaustive claim. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
entry_resolve::import_closure_dag_fileswas the same import-only closure fork as the fixture walker Floor: close fixture closures through the one closure authority (fixes #13195 refusing #13420) #13437 closed: Class B gate skip-set membership followedimportlines and missed providers reached only by qualified or bare reference (DESIGN §3).extend_sources_to_both_closure_fixpointafter the import seed, same authority the gate/witness/regen loaders use.Test plan
ctrl-build --remote -- cargo test --release -p v1-compiler --lib import_closure_dag_files_controls(3 passed)Made with Cursor