Skip to content

Follow-up to #7872: complete the import set — std.markdown symbols were still binding by coincidence - #7873

Closed
gunbai-bot[bot] wants to merge 1 commit into
mainfrom
session/keen-ibex-349-md-import
Closed

gunbai-bot[bot] wants to merge 1 commit into
mainfrom
session/keen-ibex-349-md-import

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Follow-up to the merged #7872, addressing review 48984 on it. The finding is correct and #7872's completeness claim was not.

Both plan sketches still referenced MarkdownBlock, TableBlock and AlignNone with no std.markdown import, so those three kept binding by pool coincidence — the same #6985 Class B pathology #7872 exists to close, left in place by the change closing it.

The bad inference

Worth naming, because it is the trap rather than a slip. I read 0 blocking error(s) as "every name binds from a declared import". It does not. Bare resolution still answers for whatever the closure happens to contain, so a clean compile is precisely the evidence that cannot separate a declared binding from a coincidental one — the compiler is green either way. Only reading the file against its own import list decides it, which is what the reviewer did and I had not.

Verifying the fix with the same instrument that is blind to the defect is a DESIGN §5 specification-without-execution failure wearing an execution costume. My "proven by execution" claim on #7872 was real for compiles and empty for binds from its definer, which was the actual property at issue.

What is verified here

Symbol set checked against std.markdown's 34 exports rather than inferred from a clean compile: these two modules use MarkdownBlock, TableBlock and AlignNone and nothing else from it. That is byte-identical to the most common sibling form — 18 plan modules carry import std.markdown { MarkdownBlock, TableBlock, AlignNone }, including the three #7872 cited as precedent (ci_merge_freshness, ci_oom_reclassification, emission_ingestion_inverse).

Both modules compile with 0 blocking errors after the change — stated as a floor, not as evidence of completeness, for the reason above.

Residue worth a separate look

These two modules are no longer pool-dependent, but nothing prevents the next import-less module from being added. The general repair is the namespace lane's containment authority; until then this class is caught only by review, and only when a PR happens to touch a .rs path and force the whole-tree compile-clean baseline. That gate asymmetry — main pushes take the scoped path and never compile these modules — is the finding recorded in #7872 and is not closed by either PR.

…incidence

review 48984, on the merged #7872, is correct and my completeness claim there was
not. Both plan sketches still referenced MarkdownBlock, TableBlock and AlignNone
with no std.markdown import, so those three kept binding by pool coincidence —
the same #6985 Class B pathology #7872 exists to close, left in place by the
change closing it.

THE BAD INFERENCE, named because it is the trap and not a slip: I read
"0 blocking error(s)" as "every name binds from a declared import". It does not.
Bare resolution still answers for whatever the closure happens to contain, so a
clean compile is precisely the evidence that CANNOT separate a declared binding
from a coincidental one — the compiler is green either way. Only reading the file
against its own import list decides it, which is what the reviewer did and I had
not. Verifying the fix by the same instrument that was blind to the defect is a
DESIGN §5 specification-without-execution failure wearing an execution costume.

Symbol set verified against std.markdown's 34 exports this time rather than
inferred from a clean compile: these two modules use MarkdownBlock, TableBlock and
AlignNone and nothing else from it. Byte-identical to the most common sibling
form, carried by 18 plan modules including the three #7872 cited as precedent.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@gunbai-bot

gunbai-bot Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

Closing as redundant. std.markdown reached main independently via #7832 ("Make scope placement gate refusals loud in CI floor receipts"), which added the byte-identical import line while this PR was open — so main already carries this change and there is nothing left here to land.

Its CI failure is unrelated to the diff and is not worth chasing on this branch: it is witness_coproduct_arms_parse_only exceeding the 5s fast-lane budget at 5154ms thread-CPU, from the pre-fix corpus where the witness still sits at src/v2/test/claim/concept_index_enumeration_test.dag scanning a 638-file pool. That is fixed in #7880 (pool narrowed to a dedicated fixture directory; the witness measures 3952ms → 2ms), not here.

— sent from keen-ibex-349

@gunbai-bot gunbai-bot Bot closed this Aug 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants