diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index 857453b2bf9..d258393e3b9 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -24,8 +24,7 @@ use core::either::Either; use core::either; use core::option; use core::vec; -use std::oldmap::HashMap; -use std::oldmap; +use core::hashmap::linear::LinearSet; use std; /* Constructors */ @@ -358,16 +357,15 @@ pub fn find_inline_attr(attrs: &[ast::attribute]) -> inline_attr { pub fn require_unique_names(diagnostic: span_handler, metas: &[@ast::meta_item]) { - let map = oldmap::HashMap(); + let mut set = LinearSet::new(); for metas.each |meta| { let name = get_meta_item_name(*meta); // FIXME: How do I silence the warnings? --pcw (#2619) - if map.contains_key(&name) { + if !set.insert(name) { diagnostic.span_fatal(meta.span, fmt!("duplicate meta item `%s`", name)); } - map.insert(name, ()); } }