rust-lang / rust-lang/reference

vagueness about "add additional attributes" in `macro.proc.derive.attributes`

Open Beginner friendly
#1,760 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-proc-macro Language Cleanup
Dominant language
Rust
Stars
1.6k
Forks
607
PR merge metrics
PR metrics pending

Description

Derive macros can add additional attributes into the scope of the item they are on. Said attributes are called derive macro helper attributes. These attributes are inert, and their only purpose is to be fed into the derive macro that defined them. That said, they can be seen by all macros.

When it says a derive macro can "add additional attributes into the scope", it does not make it very clear that it allows these helper attributes to be used in the scope. Instead, the way it is worded suggests the derive macro can mutate its input TokenStream, which as far as I am aware is not the case. I believe derive macros are "pure"... with respect to their TokenStream, anyway.

...also "add additional" anything seems slightly repetitive, but that's relatively minor.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the macro.proc.derive.attributes section and read the paragraph containing “add additional attributes into the scope.” Clarify that derive macro helper attributes may be used in the item’s scope rather than implying mutation of the input TokenStream; done means the wording is unambiguous and avoids the noted repetition.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
documentation
Issue type
Documentation
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.