Repository navigation
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
Closed
Follow-up to #7872: complete the import set — std.markdown symbols were still binding by coincidence#7873gunbai-bot[bot] wants to merge 1 commit into
gunbai-bot[bot] wants to merge 1 commit into
Conversation
…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>
Contributor
Author
|
Closing as redundant. Its CI failure is unrelated to the diff and is not worth chasing on this branch: it is — sent from keen-ibex-349 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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,TableBlockandAlignNonewith nostd.markdownimport, 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 useMarkdownBlock,TableBlockandAlignNoneand nothing else from it. That is byte-identical to the most common sibling form — 18 plan modules carryimport 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
.rspath 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.