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) {
|
fn encode_lang_items(ecx: &EncodeContext, ebml_w: &mut writer::Encoder) {
|
||||||
ebml_w.start_tag(tag_lang_items);
|
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() {
|
for id in def_id.iter() {
|
||||||
if id.crate == LOCAL_CRATE {
|
if id.crate == LOCAL_CRATE {
|
||||||
ebml_w.start_tag(tag_lang_items_item);
|
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
|
ebml_w.end_tag(); // tag_lang_items_item
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
true
|
}
|
||||||
};
|
|
||||||
|
|
||||||
ebml_w.end_tag(); // tag_lang_items
|
ebml_w.end_tag(); // tag_lang_items
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,6 +32,8 @@ use syntax::visit;
|
||||||
use syntax::visit::Visitor;
|
use syntax::visit::Visitor;
|
||||||
|
|
||||||
use std::hashmap::HashMap;
|
use std::hashmap::HashMap;
|
||||||
|
use std::iter::Enumerate;
|
||||||
|
use std::vec;
|
||||||
|
|
||||||
pub enum LangItem {
|
pub enum LangItem {
|
||||||
FreezeTraitLangItem, // 0
|
FreezeTraitLangItem, // 0
|
||||||
|
@ -92,8 +94,8 @@ impl LanguageItems {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn each_item(&self, f: &fn(Option<DefId>, uint) -> bool) -> bool {
|
pub fn items<'a>(&'a self) -> Enumerate<vec::VecIterator<'a, Option<DefId>>> {
|
||||||
self.items.iter().enumerate().advance(|(i, &item)| f(item, i))
|
self.items.iter().enumerate()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn item_name(index: uint) -> &'static str {
|
pub fn item_name(index: uint) -> &'static str {
|
||||||
|
|
Loading…
Reference in New Issue