diff options
| author | Manish Goregaokar <manishsmail@gmail.com> | 2015-02-28 13:56:15 +0530 |
|---|---|---|
| committer | Manish Goregaokar <manishsmail@gmail.com> | 2015-02-28 19:18:59 +0530 |
| commit | 37760c1f25fc55814a92cce1c98edefdc0740188 (patch) | |
| tree | 8569985d944648dfce3870cb2c9980ca1ba1b268 /src/libsyntax/diagnostics/plugin.rs | |
| parent | a0f5ed957accd7623efcbbfa351a8024c699ff76 (diff) | |
| parent | f66a3f7bba378d4a308e02a860a11ab5f9f8e4ad (diff) | |
| download | rust-37760c1f25fc55814a92cce1c98edefdc0740188.tar.gz rust-37760c1f25fc55814a92cce1c98edefdc0740188.zip | |
Rollup merge of #22875 - kmcallister:maceager, r=sfackler
MacEager is a MacResult implementation for the common case where you've already built each form of AST that you might return.
Fixes #17637. Based on #18814.
This is a [breaking-change] for syntax extensions:
* MacExpr::new becomes MacEager::expr.
* MacPat::new becomes MacEager::pat.
* MacItems::new becomes MacEager::items. It takes a SmallVector directly,
not an iterator.
r? @sfackler
Diffstat (limited to 'src/libsyntax/diagnostics/plugin.rs')
| -rw-r--r-- | src/libsyntax/diagnostics/plugin.rs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index b3afc3fc4dd..59fe3658437 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -14,10 +14,11 @@ use std::collections::BTreeMap; use ast; use ast::{Ident, Name, TokenTree}; use codemap::Span; -use ext::base::{ExtCtxt, MacExpr, MacResult, MacItems}; +use ext::base::{ExtCtxt, MacEager, MacResult}; use ext::build::AstBuilder; use parse::token; use ptr::P; +use util::small_vector::SmallVector; thread_local! { static REGISTERED_DIAGNOSTICS: RefCell<BTreeMap<Name, Option<Name>>> = { @@ -73,7 +74,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, )); } }); - MacExpr::new(quote_expr!(ecx, ())) + MacEager::expr(quote_expr!(ecx, ())) } pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt, @@ -101,7 +102,7 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt, let sym = Ident::new(token::gensym(&( "__register_diagnostic_".to_string() + &token::get_ident(*code) ))); - MacItems::new(vec![quote_item!(ecx, mod $sym {}).unwrap()].into_iter()) + MacEager::items(SmallVector::many(vec![quote_item!(ecx, mod $sym {}).unwrap()])) } pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt, @@ -126,7 +127,7 @@ pub fn expand_build_diagnostic_array<'cx>(ecx: &'cx mut ExtCtxt, (descriptions.len(), ecx.expr_vec(span, descriptions)) }); - MacItems::new(vec![quote_item!(ecx, + MacEager::items(SmallVector::many(vec![quote_item!(ecx, pub static $name: [(&'static str, &'static str); $count] = $expr; - ).unwrap()].into_iter()) + ).unwrap()])) } |
