diff options
| author | Jorge Aparicio <japaricious@gmail.com> | 2014-12-30 18:39:20 -0500 |
|---|---|---|
| committer | Jorge Aparicio <japaricious@gmail.com> | 2014-12-31 22:50:26 -0500 |
| commit | 70ce68eed4f81ff90cf3710e3fdb7b04de71a388 (patch) | |
| tree | f3bf05ceb4a8822e355e4c037d5a6e6303315f46 /src/libsyntax/ext | |
| parent | 371f04d4330f70cfab5fa2a5fdb65df7ccd0604c (diff) | |
| download | rust-70ce68eed4f81ff90cf3710e3fdb7b04de71a388.tar.gz rust-70ce68eed4f81ff90cf3710e3fdb7b04de71a388.zip | |
syntax: unbox closures used in function arguments
Diffstat (limited to 'src/libsyntax/ext')
| -rw-r--r-- | src/libsyntax/ext/base.rs | 6 | ||||
| -rw-r--r-- | src/libsyntax/ext/deriving/mod.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/ext/expand.rs | 2 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 8e69076a2c5..5134897893f 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -47,18 +47,18 @@ pub trait ItemDecorator { sp: Span, meta_item: &ast::MetaItem, item: &ast::Item, - push: |P<ast::Item>|); + push: Box<FnMut(P<ast::Item>)>); } impl<F> ItemDecorator for F - where F : Fn(&mut ExtCtxt, Span, &ast::MetaItem, &ast::Item, |P<ast::Item>|) + where F : Fn(&mut ExtCtxt, Span, &ast::MetaItem, &ast::Item, Box<FnMut(P<ast::Item>)>) { fn expand(&self, ecx: &mut ExtCtxt, sp: Span, meta_item: &ast::MetaItem, item: &ast::Item, - push: |P<ast::Item>|) { + push: Box<FnMut(P<ast::Item>)>) { (*self)(ecx, sp, meta_item, item, push) } } diff --git a/src/libsyntax/ext/deriving/mod.rs b/src/libsyntax/ext/deriving/mod.rs index edf29e670eb..75f763b5c38 100644 --- a/src/libsyntax/ext/deriving/mod.rs +++ b/src/libsyntax/ext/deriving/mod.rs @@ -45,7 +45,7 @@ pub fn expand_meta_deriving(cx: &mut ExtCtxt, _span: Span, mitem: &MetaItem, item: &Item, - push: |P<Item>|) { + mut push: Box<FnMut(P<Item>)>) { match mitem.node { MetaNameValue(_, ref l) => { cx.span_err(l.span, "unexpected value in `deriving`"); @@ -64,7 +64,7 @@ pub fn expand_meta_deriving(cx: &mut ExtCtxt, MetaWord(ref tname) => { macro_rules! expand(($func:path) => ($func(cx, titem.span, &**titem, item, - |i| push(i)))); + |i| push.call_mut((i,))))); match tname.get() { "Clone" => expand!(clone::expand_deriving_clone), diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 9fcaf2210c1..f9bffcc8974 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -424,7 +424,7 @@ pub fn expand_item(it: P<ast::Item>, fld: &mut MacroExpander) // but that double-mut-borrows fld let mut items: SmallVector<P<ast::Item>> = SmallVector::zero(); dec.expand(fld.cx, attr.span, &*attr.node.value, &*it, - |item| items.push(item)); + box |&mut : item| items.push(item)); decorator_items.extend(items.into_iter() .flat_map(|item| expand_item(item, fld).into_iter())); |
