]> git.lizzy.rs Git - rust.git/commitdiff
EncodeInlinedItem: convert to "unboxed" closures
authorJorge Aparicio <japaricious@gmail.com>
Sun, 4 Jan 2015 14:13:48 +0000 (09:13 -0500)
committerJorge Aparicio <japaricious@gmail.com>
Mon, 5 Jan 2015 22:22:13 +0000 (17:22 -0500)
src/librustc/metadata/encoder.rs
src/librustc_trans/trans/base.rs

index 59679f0bc7cd0ec0a6fee4585a6c05f66a4dc7ed..14ab471a4b8314c77fd4c626f9dfbca4c44ed939 100644 (file)
@@ -59,9 +59,8 @@ pub enum InlinedItemRef<'a> {
 
 pub type Encoder<'a> = writer::Encoder<'a, SeekableMemWriter>;
 
-pub type EncodeInlinedItem<'a> = |ecx: &EncodeContext,
-                                  rbml_w: &mut Encoder,
-                                  ii: InlinedItemRef|: 'a;
+pub type EncodeInlinedItem<'a> =
+    Box<FnMut(&EncodeContext, &mut Encoder, InlinedItemRef) + 'a>;
 
 pub struct EncodeParams<'a, 'tcx: 'a> {
     pub diag: &'a SpanHandler,
@@ -953,7 +952,7 @@ fn encode_inlined_item(ecx: &EncodeContext,
                        ii: InlinedItemRef) {
     let mut eii = ecx.encode_inlined_item.borrow_mut();
     let eii: &mut EncodeInlinedItem = &mut *eii;
-    (*eii)(ecx, rbml_w, ii)
+    eii.call_mut((ecx, rbml_w, ii))
 }
 
 const FN_FAMILY: char = 'f';
index 518042cf70889f71e4ca59b07a0f4e55caec1c40..29811ad6dd5f71b3550b971fae671fdc8985a794 100644 (file)
@@ -2978,7 +2978,7 @@ pub fn write_metadata(cx: &SharedCrateContext, krate: &ast::Crate) -> Vec<u8> {
     }
 
     let encode_inlined_item: encoder::EncodeInlinedItem =
-        |ecx, rbml_w, ii| astencode::encode_inlined_item(ecx, rbml_w, ii);
+        box |ecx, rbml_w, ii| astencode::encode_inlined_item(ecx, rbml_w, ii);
 
     let encode_parms = crate_ctxt_to_encode_parms(cx, encode_inlined_item);
     let metadata = encoder::encode_metadata(encode_parms, krate);