diff options
| author | Matt Peterson <ricochet1k@gmail.com> | 2017-12-21 10:44:44 -0500 |
|---|---|---|
| committer | Matt Peterson <ricochet1k@gmail.com> | 2017-12-28 11:33:44 -0500 |
| commit | b2844190640fc9a69d087e30e3c3cf37cbd40142 (patch) | |
| tree | bfc74d6618ec4d607cd8aff57679fa0dc99f61b6 /src/libsyntax/ext | |
| parent | e838cfce03caf9394fb71c909ab9e1afa8bae282 (diff) | |
| download | rust-b2844190640fc9a69d087e30e3c3cf37cbd40142.tar.gz rust-b2844190640fc9a69d087e30e3c3cf37cbd40142.zip | |
Add feature gate macro_lifetime_matcher
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/tt/macro_rules.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/libsyntax/ext/tt/macro_rules.rs b/src/libsyntax/ext/tt/macro_rules.rs index 8f2e571c213..5412decd3b7 100644 --- a/src/libsyntax/ext/tt/macro_rules.rs +++ b/src/libsyntax/ext/tt/macro_rules.rs @@ -886,8 +886,20 @@ fn is_legal_fragment_specifier(sess: &ParseSess, frag_name: &str, frag_span: Span) -> bool { match frag_name { - "item" | "block" | "stmt" | "expr" | "pat" | "lifetime" | + "item" | "block" | "stmt" | "expr" | "pat" | "path" | "ty" | "ident" | "meta" | "tt" | "" => true, + "lifetime" => { + if !features.borrow().macro_lifetime_matcher + && !attr::contains_name(attrs, "allow_internal_unstable") { + let explain = feature_gate::EXPLAIN_LIFETIME_MATCHER; + emit_feature_err(sess, + "macro_lifetime_matcher", + frag_span, + GateIssue::Language, + explain); + } + true + }, "vis" => { if !features.borrow().macro_vis_matcher && !attr::contains_name(attrs, "allow_internal_unstable") { |
