From da80bd17c30db599de43355f07783ee0bf846162 Mon Sep 17 00:00:00 2001 From: Patrick Walton Date: Wed, 25 Jul 2012 18:36:18 -0700 Subject: rustc: Introduce a lang_items pass, part of coherence and operator overloading. This will also help us remove kinds. --- src/rustc/metadata/decoder.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/rustc/metadata/decoder.rs') diff --git a/src/rustc/metadata/decoder.rs b/src/rustc/metadata/decoder.rs index 3ff9ded3f1e..a5261d039c1 100644 --- a/src/rustc/metadata/decoder.rs +++ b/src/rustc/metadata/decoder.rs @@ -39,6 +39,7 @@ export get_crate_vers; export get_impls_for_mod; export get_trait_methods; export get_method_names_if_trait; +export get_item_attrs; export get_crate_module_paths; export def_like; export dl_def; @@ -659,6 +660,18 @@ fn get_method_names_if_trait(cdata: cmd, node_id: ast::node_id) ret some(resulting_method_names); } +fn get_item_attrs(cdata: cmd, + node_id: ast::node_id, + f: fn(~[@ast::meta_item])) { + + let item = lookup_item(node_id, cdata.data); + do ebml::tagged_docs(item, tag_attributes) |attributes| { + do ebml::tagged_docs(attributes, tag_attribute) |attribute| { + f(get_meta_items(attribute)); + } + } +} + // Helper function that gets either fields or methods fn get_class_members(cdata: cmd, id: ast::node_id, p: fn(char) -> bool) -> ~[ty::field_ty] { -- cgit 1.4.1-3-g733a5