Skip to content

Commit 04334c1

Browse files
committed
librustc: convert LangItemsCollector::item_refs to take @~str as a key
1 parent e95f21f commit 04334c1

File tree

1 file changed

+45
-46
lines changed

1 file changed

+45
-46
lines changed

src/librustc/middle/lang_items.rs

Lines changed: 45 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -256,45 +256,46 @@ fn LanguageItemCollector(crate: @crate,
256256
-> LanguageItemCollector/&r {
257257
let item_refs = HashMap();
258258

259-
item_refs.insert(~"const", ConstTraitLangItem as uint);
260-
item_refs.insert(~"copy", CopyTraitLangItem as uint);
261-
item_refs.insert(~"owned", OwnedTraitLangItem as uint);
262-
item_refs.insert(~"durable", DurableTraitLangItem as uint);
263-
264-
item_refs.insert(~"drop", DropTraitLangItem as uint);
265-
266-
item_refs.insert(~"add", AddTraitLangItem as uint);
267-
item_refs.insert(~"sub", SubTraitLangItem as uint);
268-
item_refs.insert(~"mul", MulTraitLangItem as uint);
269-
item_refs.insert(~"div", DivTraitLangItem as uint);
270-
item_refs.insert(~"modulo", ModuloTraitLangItem as uint);
271-
item_refs.insert(~"neg", NegTraitLangItem as uint);
272-
item_refs.insert(~"not", NotTraitLangItem as uint);
273-
item_refs.insert(~"bitxor", BitXorTraitLangItem as uint);
274-
item_refs.insert(~"bitand", BitAndTraitLangItem as uint);
275-
item_refs.insert(~"bitor", BitOrTraitLangItem as uint);
276-
item_refs.insert(~"shl", ShlTraitLangItem as uint);
277-
item_refs.insert(~"shr", ShrTraitLangItem as uint);
278-
item_refs.insert(~"index", IndexTraitLangItem as uint);
279-
280-
item_refs.insert(~"eq", EqTraitLangItem as uint);
281-
item_refs.insert(~"ord", OrdTraitLangItem as uint);
282-
283-
item_refs.insert(~"str_eq", StrEqFnLangItem as uint);
284-
item_refs.insert(~"uniq_str_eq", UniqStrEqFnLangItem as uint);
285-
item_refs.insert(~"annihilate", AnnihilateFnLangItem as uint);
286-
item_refs.insert(~"log_type", LogTypeFnLangItem as uint);
287-
item_refs.insert(~"fail_", FailFnLangItem as uint);
288-
item_refs.insert(~"fail_bounds_check", FailBoundsCheckFnLangItem as uint);
289-
item_refs.insert(~"exchange_malloc", ExchangeMallocFnLangItem as uint);
290-
item_refs.insert(~"exchange_free", ExchangeFreeFnLangItem as uint);
291-
item_refs.insert(~"malloc", MallocFnLangItem as uint);
292-
item_refs.insert(~"free", FreeFnLangItem as uint);
293-
item_refs.insert(~"borrow_as_imm", BorrowAsImmFnLangItem as uint);
294-
item_refs.insert(~"return_to_mut", ReturnToMutFnLangItem as uint);
295-
item_refs.insert(~"check_not_borrowed",
259+
item_refs.insert(@~"const", ConstTraitLangItem as uint);
260+
item_refs.insert(@~"copy", CopyTraitLangItem as uint);
261+
item_refs.insert(@~"owned", OwnedTraitLangItem as uint);
262+
item_refs.insert(@~"durable", DurableTraitLangItem as uint);
263+
264+
item_refs.insert(@~"drop", DropTraitLangItem as uint);
265+
266+
item_refs.insert(@~"add", AddTraitLangItem as uint);
267+
item_refs.insert(@~"sub", SubTraitLangItem as uint);
268+
item_refs.insert(@~"mul", MulTraitLangItem as uint);
269+
item_refs.insert(@~"div", DivTraitLangItem as uint);
270+
item_refs.insert(@~"modulo", ModuloTraitLangItem as uint);
271+
item_refs.insert(@~"neg", NegTraitLangItem as uint);
272+
item_refs.insert(@~"not", NotTraitLangItem as uint);
273+
item_refs.insert(@~"bitxor", BitXorTraitLangItem as uint);
274+
item_refs.insert(@~"bitand", BitAndTraitLangItem as uint);
275+
item_refs.insert(@~"bitor", BitOrTraitLangItem as uint);
276+
item_refs.insert(@~"shl", ShlTraitLangItem as uint);
277+
item_refs.insert(@~"shr", ShrTraitLangItem as uint);
278+
item_refs.insert(@~"index", IndexTraitLangItem as uint);
279+
280+
item_refs.insert(@~"eq", EqTraitLangItem as uint);
281+
item_refs.insert(@~"ord", OrdTraitLangItem as uint);
282+
283+
item_refs.insert(@~"str_eq", StrEqFnLangItem as uint);
284+
item_refs.insert(@~"uniq_str_eq", UniqStrEqFnLangItem as uint);
285+
item_refs.insert(@~"annihilate", AnnihilateFnLangItem as uint);
286+
item_refs.insert(@~"log_type", LogTypeFnLangItem as uint);
287+
item_refs.insert(@~"fail_", FailFnLangItem as uint);
288+
item_refs.insert(@~"fail_bounds_check",
289+
FailBoundsCheckFnLangItem as uint);
290+
item_refs.insert(@~"exchange_malloc", ExchangeMallocFnLangItem as uint);
291+
item_refs.insert(@~"exchange_free", ExchangeFreeFnLangItem as uint);
292+
item_refs.insert(@~"malloc", MallocFnLangItem as uint);
293+
item_refs.insert(@~"free", FreeFnLangItem as uint);
294+
item_refs.insert(@~"borrow_as_imm", BorrowAsImmFnLangItem as uint);
295+
item_refs.insert(@~"return_to_mut", ReturnToMutFnLangItem as uint);
296+
item_refs.insert(@~"check_not_borrowed",
296297
CheckNotBorrowedFnLangItem as uint);
297-
item_refs.insert(~"strdup_uniq", StrDupUniqFnLangItem as uint);
298+
item_refs.insert(@~"strdup_uniq", StrDupUniqFnLangItem as uint);
298299

299300
LanguageItemCollector {
300301
crate: crate,
@@ -310,19 +311,17 @@ struct LanguageItemCollector {
310311
crate: @crate,
311312
session: Session,
312313

313-
item_refs: HashMap<~str,uint>,
314+
item_refs: HashMap<@~str, uint>,
314315
}
315316

316317
impl LanguageItemCollector {
317318
fn match_and_collect_meta_item(item_def_id: def_id,
318319
meta_item: meta_item) {
319320
match meta_item.node {
320-
meta_name_value(ref key, literal) => {
321+
meta_name_value(key, literal) => {
321322
match literal.node {
322323
lit_str(value) => {
323-
self.match_and_collect_item(item_def_id,
324-
(/*bad*/copy **key),
325-
/*bad*/copy *value);
324+
self.match_and_collect_item(item_def_id, key, value);
326325
}
327326
_ => {} // Skip.
328327
}
@@ -347,8 +346,8 @@ impl LanguageItemCollector {
347346
self.items.items[item_index] = Some(item_def_id);
348347
}
349348

350-
fn match_and_collect_item(item_def_id: def_id, key: ~str, value: ~str) {
351-
if key != ~"lang" {
349+
fn match_and_collect_item(item_def_id: def_id, key: @~str, value: @~str) {
350+
if *key != ~"lang" {
352351
return; // Didn't match.
353352
}
354353

@@ -394,7 +393,7 @@ impl LanguageItemCollector {
394393
for self.item_refs.each |&key, &item_ref| {
395394
match self.items.items[item_ref] {
396395
None => {
397-
self.session.err(fmt!("no item found for `%s`", key));
396+
self.session.err(fmt!("no item found for `%s`", *key));
398397
}
399398
Some(_) => {
400399
// OK.

0 commit comments

Comments
 (0)