-
Notifications
You must be signed in to change notification settings - Fork 48
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
Disallow keywords as macro arguments names #68
Comments
This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed. |
Cross-referencing: rust-lang/reference#863 |
I'll second this. I think it's a reasonable change to make, orthogonally to whatever further changes we might make that would use the syntax this reserves. Clarifying edit: I'm agreeing in principle that this seems like a good idea and is worth pursuing, in the spirit of the MCP process, but I still expect that this will go through a crater run and similar to gauge impact. |
@rustbot second |
Summary of Zulip comments:
|
Discussion from 2020-11-10:
Conclusion of the meeting:
|
Discussion in today's lang team meeting: the only urgency would be if we're going to prohibit keywords, and that's sufficiently high impact that we likely won't end up doing it, even without having to do a full crater run. We're more likely to accept an alternative syntax, such as |
The "let's just do better in macros 2.0" from the meeting was persuasive to me. Given that anything going to happen here would be substantially more than what I described in the OP, I'm going to close. Anyone motivated to take up the larger task should absolutely make a new proposal, however. |
Proposal
Summary and problem statement
It was recently determined https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/postfix.20macros/near/216030097 that
self
andif
and such are valid as identifiers in macros ($self
,$if
, etc).That prevents adding new things like
$crate
, since there are no reserved identifiers. So it would be nice to treat them like normal identifiers, where keywords are not allowed. And because these are just identifiers, and thus unaffected by alpha-conversion, all expressible macros are still expressible. (And arguably not calling things$if
is probably good.)Motivation, use-cases, and solution sketches
$self
with special meaning, which is currently a breaking change without this.This would just be an edition change for the edition in which the macro is written.
Prioritization
This would need to happen fairly promptly if it were to make it for the 2021 edition.
Links and related work
https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/postfix.20macros/near/216031552
Initial people involved
@joshtriplett
What happens now?
This issue is part of the experimental MCP process described in RFC 2936. Once this issue is filed, a Zulip topic will be opened for discussion, and the lang-team will review open MCPs in its weekly triage meetings. You should receive feedback within a week or two.
This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.
The text was updated successfully, but these errors were encountered: