Skip to content

[Change]: [1.99.0] Stabilize '#[my_macro] mod foo;' - #729

Merged
tshepang merged 2 commits into
rust-lang:mainfrom
PLeVasseur:outline-modules-in-proc-macros
Oct 2, 2026
Merged

tshepang merged 2 commits into
rust-lang:mainfrom
PLeVasseur:outline-modules-in-proc-macros

Conversation

@PLeVasseur

Copy link
Copy Markdown
Contributor

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.

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.
@PLeVasseur

Copy link
Copy Markdown
Contributor Author

@tshepang -- would you also like to take a look, before this merges?

Comment thread src/macros.rst Outdated
Comment thread src/macros.rst Outdated
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.
@PLeVasseur
PLeVasseur requested a review from tshepang October 2, 2026 07:19
@tshepang
tshepang added this pull request to the merge queue Oct 2, 2026
Merged via the queue into rust-lang:main with commit 5bec121 Oct 2, 2026
4 checks passed
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.

3 participants