From 400c3a0ddcf4441f66eb4653c7365b663f9a4ea1 Mon Sep 17 00:00:00 2001 From: Ben Foppa Date: Sun, 4 Jan 2015 14:07:32 -0500 Subject: [breaking change] Update entry API as part of RFC 509. --- src/libsyntax/ext/mtwt.rs | 15 ++++++--------- src/libsyntax/ext/tt/macro_parser.rs | 4 ++-- 2 files changed, 8 insertions(+), 11 deletions(-) (limited to 'src/libsyntax') diff --git a/src/libsyntax/ext/mtwt.rs b/src/libsyntax/ext/mtwt.rs index bac82494f28..4075b208f78 100644 --- a/src/libsyntax/ext/mtwt.rs +++ b/src/libsyntax/ext/mtwt.rs @@ -21,7 +21,6 @@ use ast::{Ident, Mrk, Name, SyntaxContext}; use std::cell::RefCell; use std::collections::HashMap; -use std::collections::hash_map::Entry::{Occupied, Vacant}; /// The SCTable contains a table of SyntaxContext_'s. It /// represents a flattened tree structure, to avoid having @@ -67,10 +66,9 @@ pub fn apply_mark(m: Mrk, ctxt: SyntaxContext) -> SyntaxContext { /// Extend a syntax context with a given mark and sctable (explicit memoization) fn apply_mark_internal(m: Mrk, ctxt: SyntaxContext, table: &SCTable) -> SyntaxContext { let key = (ctxt, m); - * match table.mark_memo.borrow_mut().entry(key) { - Vacant(entry) => entry.set(idx_push(&mut *table.table.borrow_mut(), Mark(m, ctxt))), - Occupied(entry) => entry.into_mut(), - } + * table.mark_memo.borrow_mut().entry(&key).get().unwrap_or_else( + |vacant_entry| + vacant_entry.insert(idx_push(&mut *table.table.borrow_mut(), Mark(m, ctxt)))) } /// Extend a syntax context with a given rename @@ -86,10 +84,9 @@ fn apply_rename_internal(id: Ident, table: &SCTable) -> SyntaxContext { let key = (ctxt, id, to); - * match table.rename_memo.borrow_mut().entry(key) { - Vacant(entry) => entry.set(idx_push(&mut *table.table.borrow_mut(), Rename(id, to, ctxt))), - Occupied(entry) => entry.into_mut(), - } + * table.rename_memo.borrow_mut().entry(&key).get().unwrap_or_else( + |vacant_entry| + vacant_entry.insert(idx_push(&mut *table.table.borrow_mut(), Rename(id, to, ctxt)))) } /// Apply a list of renamings to a context diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index 69e473055e8..1438d152554 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -219,9 +219,9 @@ pub fn nameize(p_s: &ParseSess, ms: &[TokenTree], res: &[Rc]) } } &TtToken(sp, MatchNt(bind_name, _, _, _)) => { - match ret_val.entry(bind_name) { + match ret_val.entry(&bind_name) { Vacant(spot) => { - spot.set(res[*idx].clone()); + spot.insert(res[*idx].clone()); *idx += 1; } Occupied(..) => { -- cgit 1.4.1-3-g733a5