Closed
Description
This API didn't get stabilized in the initial Macros 1.2 release because we wanted to be conservative. This API is unstable, though, and likely useful to others! This is a tracking issue for the API.
It's not clear to me if there's a blocker for stabilization other than we just wanted to make an explicit decision to stabilize the API.
Metadata
Metadata
Assignees
Labels
Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Blocker: Implemented in the nightly compiler and unstable.Category: An issue tracking the progress of sth. like the implementation of an RFCLibs issues that are tracked on the team's project board.Relevant to the language teamRelevant to the library API team, which will review and decide on the PR/issue.
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
alexcrichton commentedon Oct 1, 2018
This is tracking the
proc_macro_raw_ident
featureThe `proc_macro_raw_ident` feature is now at rust-lang#54723
chachi commentedon Feb 19, 2019
Stabilizing this feature would have a great impact on code generation for message libraries (e.g. in ROS) where message fields can collide with Rust keywords.
petrochenkov commentedon Feb 19, 2019
@chachi
Since raw identifiers are already stabilized, I think the only question here is perhaps naming conventions (e.g.
new_raw
vs simplyraw
).When introducing the function I thought
new_adjective
is not idiomatic, but apparently there are alreadyNonNull::new_unchecked
andPin::new_unchecked
, soIdent::new_raw
is probably good too.In this case the only thing that needs to be done is submitting a stabilization PR, that will then go through the formal team approval vote.
chachi commentedon Feb 19, 2019
@petrochenkov Great! Is that something I could take care of? I haven't contributed to Rust upstream before so would love any tips/pointers on what that process is.
petrochenkov commentedon Feb 19, 2019
@chachi
Yes, for library stabilizations the only things that need to be done are changing the
#[unstable(...)]
attribute to#[stable(...)]
(the version on trunk is 1.34.0 right now) and removing unnecessary#![feature(...)]
s across the codebase.Here's a recent example of such stabilization - #58576.
adnanademovic commentedon Mar 7, 2019
@petrochenkov Should the feature be changed from
"proc_macro_raw_ident"
to something else, like"proc_macro_lib2"
?petrochenkov commentedon Mar 7, 2019
@adnanademovic
No, the feature names are normally kept during stabilization.
11 remaining items