diff options
| author | bors <bors@rust-lang.org> | 2017-03-19 10:56:08 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-03-19 10:56:08 +0000 |
| commit | 9c15de4fd59bee290848b5443c7e194fd5afb02c (patch) | |
| tree | fb3ddd382a56f1f6ce7fcecdb9c45fcc6032b352 /src/libsyntax/parse/token.rs | |
| parent | bfc49b1092512aee4fe3d1348c3250fcdc8978d3 (diff) | |
| parent | 85e02bdbfcfd0e38def7656a8295a5260640fd4a (diff) | |
| download | rust-9c15de4fd59bee290848b5443c7e194fd5afb02c.tar.gz rust-9c15de4fd59bee290848b5443c7e194fd5afb02c.zip | |
Auto merge of #40346 - jseyfried:path_and_tokenstream_attr, r=nrc
`TokenStream`-based attributes, paths in attribute and derive macro invocations This PR - refactors `Attribute` to use `Path` and `TokenStream` instead of `MetaItem`. - supports macro invocation paths for attribute procedural macros. - e.g. `#[::foo::attr_macro] struct S;`, `#[cfg_attr(all(), foo::attr_macro)] struct S;` - supports macro invocation paths for derive procedural macros. - e.g. `#[derive(foo::Bar, super::Baz)] struct S;` - supports arbitrary tokens as arguments to attribute procedural macros. - e.g. `#[foo::attr_macro arbitrary + tokens] struct S;` - supports using arbitrary tokens in "inert attributes" with derive procedural macros. - e.g. `#[derive(Foo)] struct S(#[inert arbitrary + tokens] i32);` where `#[proc_macro_derive(Foo, attributes(inert))]` r? @nrc
Diffstat (limited to 'src/libsyntax/parse/token.rs')
| -rw-r--r-- | src/libsyntax/parse/token.rs | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 25601f2420e..75852629ce1 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -17,7 +17,7 @@ pub use self::Token::*; use ast::{self}; use ptr::P; use symbol::keywords; -use tokenstream; +use tokenstream::TokenTree; use std::fmt; use std::rc::Rc; @@ -349,7 +349,7 @@ pub enum Nonterminal { /// Stuff inside brackets for attributes NtMeta(ast::MetaItem), NtPath(ast::Path), - NtTT(tokenstream::TokenTree), + NtTT(TokenTree), // These are not exposed to macros, but are used by quasiquote. NtArm(ast::Arm), NtImplItem(ast::ImplItem), |
