use c = metadata::common;
use cstore = metadata::cstore;
use driver::session::Session;
-use e = metadata::encoder;
use metadata::decoder;
+use e = metadata::encoder;
+use middle::freevars::freevar_entry;
+use middle::region;
use metadata::tydecode;
use metadata::tydecode::{DefIdSource, NominalType, TypeWithId, TypeParameter,
RegionParameter};
use metadata::tyencode;
-use middle::freevars::freevar_entry;
use middle::typeck::{method_origin, method_map_entry};
use middle::{ty, typeck, moves};
use middle;
ebml_w.writer.tell());
}
+pub fn encode_exported_macro(ebml_w: &mut writer::Encoder, i: &ast::Item) {
+ match i.node {
+ ast::ItemMac(..) => encode_ast(ebml_w, ast::IIItem(@i.clone())),
+ _ => fail!("expected a macro")
+ }
+}
+
pub fn decode_inlined_item(cdata: @cstore::crate_metadata,
tcx: ty::ctxt,
maps: Maps,
debug!("< Decoded inlined fn: {}::{}",
ast_map::path_to_str(path, token::get_ident_interner()),
tcx.sess.str_of(ident));
+ region::resolve_inlined_item(tcx.sess, &tcx.region_maps, &ii);
decode_side_tables(xcx, ast_doc);
match ii {
ast::IIItem(i) => {
}
}
+pub fn decode_exported_macro(par_doc: ebml::Doc) -> @ast::Item {
+ match decode_ast(par_doc) {
+ ast::IIItem(item) => item,
+ _ => fail!("expected item")
+ }
+}
+
// ______________________________________________________________________
// Enumerating the IDs which appear in an AST