Repository navigation
[Change]: [1.99.0] Stabilize '#[my_macro] mod foo;' - #729
Merged
tshepang merged 2 commits intoOct 2, 2026
Merged
Conversation
Rust 1.99 stabilizes outline modules (`mod foo;`) in the input of attribute and derive procedural macros (rust-lang/rust#157857). The macro receives the module declaration as tokens; the module's source file is not loaded and its contents are not part of the input.
kirtchev-adacore
approved these changes
Sep 28, 2026
Contributor
Author
|
@tshepang -- would you also like to take a look, before this merges? |
tshepang
requested changes
Sep 29, 2026
Address review feedback on the outline module rules for derive and attribute macro input: - Drop "sole" from the derive rule; the parameter count is already stated by fls_npnze2cg8ae. - State which outline modules the rules cover: for a derive macro, those declared within the related abstract data type; for an attribute macro, the related item itself or a module declared within it. - Fold the no-loading statement into the same sentence instead of a second one. It is kept because excluding the source file contents from the token stream does not by itself say the file is left unloaded, and that is observable: an attribute macro that drops `mod absent;` compiles without the module file existing.
tshepang
approved these changes
Oct 2, 2026
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.
Summary
Document how attribute and derive macros receive outline module declarations without loading the module files.
Refs #726
Reference alignment
Rust #157857 and Reference #2310. Derive coverage also follows the stabilization tests.