From 04334c1ae0fe4a0cd532097d9074d842ddfcb079 Mon Sep 17 00:00:00 2001 From: Erick Tryzelaar Date: Mon, 18 Feb 2013 20:55:14 -0800 Subject: [PATCH] librustc: convert LangItemsCollector::item_refs to take @~str as a key --- src/librustc/middle/lang_items.rs | 83 +++++++++++++++---------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index 7bb2e7e4c16..983ee2ca141 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -256,45 +256,46 @@ fn LanguageItemCollector(crate: @crate, -> LanguageItemCollector/&r { let item_refs = HashMap(); - item_refs.insert(~"const", ConstTraitLangItem as uint); - item_refs.insert(~"copy", CopyTraitLangItem as uint); - item_refs.insert(~"owned", OwnedTraitLangItem as uint); - item_refs.insert(~"durable", DurableTraitLangItem as uint); + item_refs.insert(@~"const", ConstTraitLangItem as uint); + item_refs.insert(@~"copy", CopyTraitLangItem as uint); + item_refs.insert(@~"owned", OwnedTraitLangItem as uint); + item_refs.insert(@~"durable", DurableTraitLangItem as uint); - item_refs.insert(~"drop", DropTraitLangItem as uint); + item_refs.insert(@~"drop", DropTraitLangItem as uint); - item_refs.insert(~"add", AddTraitLangItem as uint); - item_refs.insert(~"sub", SubTraitLangItem as uint); - item_refs.insert(~"mul", MulTraitLangItem as uint); - item_refs.insert(~"div", DivTraitLangItem as uint); - item_refs.insert(~"modulo", ModuloTraitLangItem as uint); - item_refs.insert(~"neg", NegTraitLangItem as uint); - item_refs.insert(~"not", NotTraitLangItem as uint); - item_refs.insert(~"bitxor", BitXorTraitLangItem as uint); - item_refs.insert(~"bitand", BitAndTraitLangItem as uint); - item_refs.insert(~"bitor", BitOrTraitLangItem as uint); - item_refs.insert(~"shl", ShlTraitLangItem as uint); - item_refs.insert(~"shr", ShrTraitLangItem as uint); - item_refs.insert(~"index", IndexTraitLangItem as uint); + item_refs.insert(@~"add", AddTraitLangItem as uint); + item_refs.insert(@~"sub", SubTraitLangItem as uint); + item_refs.insert(@~"mul", MulTraitLangItem as uint); + item_refs.insert(@~"div", DivTraitLangItem as uint); + item_refs.insert(@~"modulo", ModuloTraitLangItem as uint); + item_refs.insert(@~"neg", NegTraitLangItem as uint); + item_refs.insert(@~"not", NotTraitLangItem as uint); + item_refs.insert(@~"bitxor", BitXorTraitLangItem as uint); + item_refs.insert(@~"bitand", BitAndTraitLangItem as uint); + item_refs.insert(@~"bitor", BitOrTraitLangItem as uint); + item_refs.insert(@~"shl", ShlTraitLangItem as uint); + item_refs.insert(@~"shr", ShrTraitLangItem as uint); + item_refs.insert(@~"index", IndexTraitLangItem as uint); - item_refs.insert(~"eq", EqTraitLangItem as uint); - item_refs.insert(~"ord", OrdTraitLangItem as uint); + item_refs.insert(@~"eq", EqTraitLangItem as uint); + item_refs.insert(@~"ord", OrdTraitLangItem as uint); - item_refs.insert(~"str_eq", StrEqFnLangItem as uint); - item_refs.insert(~"uniq_str_eq", UniqStrEqFnLangItem as uint); - item_refs.insert(~"annihilate", AnnihilateFnLangItem as uint); - item_refs.insert(~"log_type", LogTypeFnLangItem as uint); - item_refs.insert(~"fail_", FailFnLangItem as uint); - item_refs.insert(~"fail_bounds_check", FailBoundsCheckFnLangItem as uint); - item_refs.insert(~"exchange_malloc", ExchangeMallocFnLangItem as uint); - item_refs.insert(~"exchange_free", ExchangeFreeFnLangItem as uint); - item_refs.insert(~"malloc", MallocFnLangItem as uint); - item_refs.insert(~"free", FreeFnLangItem as uint); - item_refs.insert(~"borrow_as_imm", BorrowAsImmFnLangItem as uint); - item_refs.insert(~"return_to_mut", ReturnToMutFnLangItem as uint); - item_refs.insert(~"check_not_borrowed", + item_refs.insert(@~"str_eq", StrEqFnLangItem as uint); + item_refs.insert(@~"uniq_str_eq", UniqStrEqFnLangItem as uint); + item_refs.insert(@~"annihilate", AnnihilateFnLangItem as uint); + item_refs.insert(@~"log_type", LogTypeFnLangItem as uint); + item_refs.insert(@~"fail_", FailFnLangItem as uint); + item_refs.insert(@~"fail_bounds_check", + FailBoundsCheckFnLangItem as uint); + item_refs.insert(@~"exchange_malloc", ExchangeMallocFnLangItem as uint); + item_refs.insert(@~"exchange_free", ExchangeFreeFnLangItem as uint); + item_refs.insert(@~"malloc", MallocFnLangItem as uint); + item_refs.insert(@~"free", FreeFnLangItem as uint); + item_refs.insert(@~"borrow_as_imm", BorrowAsImmFnLangItem as uint); + item_refs.insert(@~"return_to_mut", ReturnToMutFnLangItem as uint); + item_refs.insert(@~"check_not_borrowed", CheckNotBorrowedFnLangItem as uint); - item_refs.insert(~"strdup_uniq", StrDupUniqFnLangItem as uint); + item_refs.insert(@~"strdup_uniq", StrDupUniqFnLangItem as uint); LanguageItemCollector { crate: crate, @@ -310,19 +311,17 @@ struct LanguageItemCollector { crate: @crate, session: Session, - item_refs: HashMap<~str,uint>, + item_refs: HashMap<@~str, uint>, } impl LanguageItemCollector { fn match_and_collect_meta_item(item_def_id: def_id, meta_item: meta_item) { match meta_item.node { - meta_name_value(ref key, literal) => { + meta_name_value(key, literal) => { match literal.node { lit_str(value) => { - self.match_and_collect_item(item_def_id, - (/*bad*/copy **key), - /*bad*/copy *value); + self.match_and_collect_item(item_def_id, key, value); } _ => {} // Skip. } @@ -347,8 +346,8 @@ impl LanguageItemCollector { self.items.items[item_index] = Some(item_def_id); } - fn match_and_collect_item(item_def_id: def_id, key: ~str, value: ~str) { - if key != ~"lang" { + fn match_and_collect_item(item_def_id: def_id, key: @~str, value: @~str) { + if *key != ~"lang" { return; // Didn't match. } @@ -394,7 +393,7 @@ impl LanguageItemCollector { for self.item_refs.each |&key, &item_ref| { match self.items.items[item_ref] { None => { - self.session.err(fmt!("no item found for `%s`", key)); + self.session.err(fmt!("no item found for `%s`", *key)); } Some(_) => { // OK.