Skip to content

Helper attributes in attribute macros #716

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from

Conversation

extrawurst
Copy link

This little gotcha took me a while to figure out, maybe others will benefit from this addition swell

This little gotcha took me a while to figure out, maybe others will benefit from this addition swell
#### Attribute macro helper attributes

Unlike for [Derive macros] helper attributes do not have to be marked explicitly.
Since attribute macros can completely discard the input token stream filtering out custom `helper` attributes is entirely the job of the attribute macro.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Since attribute macros can completely discard the input token stream filtering out custom `helper` attributes is entirely the job of the attribute macro.
Since attribute macros can completely discard the input token stream filtering
out custom `helper` attributes is entirely the job of the attribute macro.

@@ -273,6 +273,11 @@ fn invoke4() {}
// out: item: "fn invoke4() {}"
```

#### Attribute macro helper attributes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not understand this addition; until we have something like rust-lang/rust#65823 there is no such thing in the language definition as "attribute macro helper attributes". (N.B. the reference is not a user guide -- it is an incomplete definition of the language).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for pointing me to that issue, its basically the same reason for my edit: new comers might be confused how to get the same behaviour like the helper attributes in a full fledged proc macro attribute, not realising that it is the macro's job to actually strip those out (or what ever else for that matter) - I get that it is weird to put something in the docs that looks like a user-guide thing but clearly I am not the only person stumbling over this...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@extrawurst I think adding this sort of documentation would be appropriate for e.g. a book on procedural macros or some other sort of tutorial (cc @dtolnay for possible locations). But people stumbling over things is not a good reason to add help notes to the reference, which is not teaching material.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fair enough

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