rustc: Convert lang_item to use an iterator
This commit is contained in:
parent
8e69c05b7c
commit
abcca1c7d1
|
@ -1574,7 +1574,7 @@ fn encode_crate_deps(ecx: &EncodeContext,
|
|||
fn encode_lang_items(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) {
|
||||
ebml_w.start_tag(tag_lang_items);
|
||||
|
||||
do ecx.tcx.lang_items.each_item |def_id, i| {
|
||||
for (i, def_id) in ecx.tcx.lang_items.items() {
|
||||
for id in def_id.iter() {
|
||||
if id.crate == LOCAL_CRATE {
|
||||
ebml_w.start_tag(tag_lang_items_item);
|
||||
|
@ -1590,8 +1590,7 @@ fn encode_lang_items(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) {
|
|||
ebml_w.end_tag(); // tag_lang_items_item
|
||||
}
|
||||
}
|
||||
true
|
||||
};
|
||||
}
|
||||
|
||||
ebml_w.end_tag(); // tag_lang_items
|
||||
}
|
||||
|
|
|
@ -32,6 +32,8 @@ use syntax::visit;
|
|||
use syntax::visit::Visitor;
|
||||
|
||||
use std::hashmap::HashMap;
|
||||
use std::iter::Enumerate;
|
||||
use std::vec;
|
||||
|
||||
pub enum LangItem {
|
||||
FreezeTraitLangItem, // 0
|
||||
|
@ -92,8 +94,8 @@ impl LanguageItems {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn each_item(&self, f: &fn(Option<DefId>, uint) -> bool) -> bool {
|
||||
self.items.iter().enumerate().advance(|(i, &item)| f(item, i))
|
||||
pub fn items<'a>(&'a self) -> Enumerate<vec::VecIterator<'a, Option<DefId>>> {
|
||||
self.items.iter().enumerate()
|
||||
}
|
||||
|
||||
pub fn item_name(index: uint) -> &'static str {
|
||||
|
|
Loading…
Reference in New Issue