-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Tracking issue: declarative macros 2.0 #39412
Copy link
Copy link
Open
Labels
A-decl-macros-2-0Area: Declarative macros 2.0 (#39412)Area: Declarative macros 2.0 (#39412)A-hygieneArea: Macro hygieneArea: Macro hygieneA-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)B-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.Blocker: Approved by a merged RFC but not yet implemented.B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCF-decl_macro`#![feature(decl_macro)]``#![feature(decl_macro)]`S-tracking-design-concernsStatus: There are blocking design concerns.Status: There are blocking design concerns.T-langRelevant to the language teamRelevant to the language teamWG-macrosWorking group: MacrosWorking group: Macros
Metadata
Metadata
Assignees
Labels
A-decl-macros-2-0Area: Declarative macros 2.0 (#39412)Area: Declarative macros 2.0 (#39412)A-hygieneArea: Macro hygieneArea: Macro hygieneA-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)B-RFC-approvedBlocker: Approved by a merged RFC but not yet implemented.Blocker: Approved by a merged RFC but not yet implemented.B-unstableBlocker: Implemented in the nightly compiler and unstable.Blocker: Implemented in the nightly compiler and unstable.C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCF-decl_macro`#![feature(decl_macro)]``#![feature(decl_macro)]`S-tracking-design-concernsStatus: There are blocking design concerns.Status: There are blocking design concerns.T-langRelevant to the language teamRelevant to the language teamWG-macrosWorking group: MacrosWorking group: Macros
Type
Fields
Give feedbackNo fields configured for issues without a type.
Tracking issue for declarative macros 2.0 (aka
macroaka decl_macro aka macros-by-example).RFC: https://rust-lang.github.io/rfcs/1584-macros.html
RFC PR: rust-lang/rfcs#1584
cc @rust-lang/compiler
About tracking issues
Tracking issues are used to record the overall progress of implementation.
They are also used as hubs connecting to other relevant issues, e.g., bugs or open design questions.
A tracking issue is however not meant for large scale discussion, questions, or bug reports about a feature.
Instead, open a dedicated issue for the specific matter and add the relevant feature gate label.
Discussion comments will get marked as off-topic or deleted.
Repeated discussions on the tracking issue may lead to the tracking issue getting locked.
Tasks
macroin blocks as well as modules.macros.macros (pending macro def encoding).private_in_publichygienic?unsafeand lints hygienic (if appropriate)?ast::ItemKind::MacroDefformacro_rules!items andmacroitems (PR syntax: addast::ItemKind::MacroDef, simplify hygiene info #40220).macros in the crate metadata usingTokenStream, notString.private_in_publicdetails).Span's expansion information #40597).macrobehind a feature gate (PR Initial implementation of declarative macros 2.0 #40847).$e:expr) by employing a simpler, more general grammar.$ewhere$e:expr) to be parsed in more contexts (c.f. Macro matching is incorrect for macros invoked in macro expansions #26361).Remove $:meta matcher (Remove $:meta matcher in decl macros #49629)Potentially blocking issues: