-
-
Notifications
You must be signed in to change notification settings - Fork 14.7k
Tracking issue for RFC 1566: Procedural macros #38356
Copy link
Copy link
Closed
Labels
A-decl-macros-1-2Area: Declarative macros 1.2Area: Declarative macros 1.2A-decl-macros-2-0Area: Declarative macros 2.0 (#39412)Area: Declarative macros 2.0 (#39412)A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)A-pluginsArea: compiler plugins (removed in https://github.com/rust-lang/rust/pull/116412)Area: compiler plugins (removed in https://github.com/rust-lang/rust/pull/116412)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 RFCT-langRelevant to the language teamRelevant to the language teamT-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.finished-final-comment-periodThe final comment period is finished for this PR / Issue.The final comment period is finished for this PR / Issue.
Metadata
Metadata
Assignees
Labels
A-decl-macros-1-2Area: Declarative macros 1.2Area: Declarative macros 1.2A-decl-macros-2-0Area: Declarative macros 2.0 (#39412)Area: Declarative macros 2.0 (#39412)A-macrosArea: All kinds of macros (custom derive, macro_rules!, proc macros, ..)Area: All kinds of macros (custom derive, macro_rules!, proc macros, ..)A-pluginsArea: compiler plugins (removed in https://github.com/rust-lang/rust/pull/116412)Area: compiler plugins (removed in https://github.com/rust-lang/rust/pull/116412)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 RFCT-langRelevant to the language teamRelevant to the language teamT-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.finished-final-comment-periodThe final comment period is finished for this PR / Issue.The final comment period is finished for this PR / Issue.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Current Status
This issue has been closed in favor of more fine-grained tracking issues
~~~Updated Description~~~
Next steps:
use_extern_macrosproc_macrofeaturePossible Stabilization Showstoppers
Hygiene is weirdermacro_rules!and also having pre-1.29 compat is hardOriginal Description
RFC.
Roadmap: #38356 (comment).
Tasks
#[proc_macro_attribute](PR Implement#[proc_macro_attribute]#38842).proc_macro_deriveswith#![feature(proc_macro)]#39572).cfg-process items before applying attribute proc macros #39336 (PR Apply attr proc macros before cfg processing #44528).#[proc_macro](PR Implement function-like procedural macros (#[proc_macro]) #40129).proc_macro_derives in theInvocationCollector(PR [WIP] Expand#[derive(..)]s in the InvocationCollector #39391).proc_macro_deriveimports.proc_macro_derives (PR Expand items before their derives #48465).#[macro_use]imports (PR Improve unusedextern crateand unused#[macro_use]warnings #39060).TokenStreamin preparation for further refactoring (PR RefactorTokenStream#39173).TokenTree::Sequence(PR SimplifyTokenTreeand fixmacro_rules!bugs #39419).TokenStreams instead ofVec<TokenTree>intokenstream::TokenTree'sDelimitedvariant (PR syntax: integrateTokenStream#40202).Paths andTokenStreams inast::Attributes (PRTokenStream-based attributes, paths in attribute and derive macro invocations #40346).#[foo::bar],#[derive(foo::Bar)]).Span's expansion information #40597).proc_macro::TokenStreamas outlined in the RFC (PR proc_macro: implementTokenTree,TokenKind, hygienicquote!, and other API #40939).TokenStreams for interpolated AST fragments inToken::Interpolatedtokens.TokenStreamquoterproc_macro::quote!behind theproc_macrofeature gate.proc_macroauthors to create expansions that use items in a predetermined cratefoowithout requiring the macro user to includeextern crate foo;at the crate root (PR proc_macro: implementTokenTree,TokenKind, hygienicquote!, and other API #40939).TokenStreams for items in the AST.proc_macro::quote!(issue Improve error from invalid syntax insideproc_macro::quote!#47315).