pub fn new_mark_internal(m: Mrk, tail: SyntaxContext, table: &SCTable)
                         -> SyntaxContext {
    let key = (tail,m);
    // FIXME #5074 : can't use more natural style because we're missing
    // flow-sensitivity. Results in two lookups on a hash table hit.
    // also applies to new_rename_internal, below.
    // let try_lookup = table.mark_memo.find(&key);
    let mut mark_memo = table.mark_memo.borrow_mut();
    match mark_memo.get().contains_key(&key) {
        false => {
            let new_idx = {
                let mut table = table.table.borrow_mut();
                idx_push(table.get(), Mark(m,tail))
            };
            mark_memo.get().insert(key,new_idx);
            new_idx
        }
        true => {
            match mark_memo.get().find(&key) {
                None => fail!("internal error: key disappeared 2013042901"),
                Some(idxptr) => {*idxptr}
            }
        }
    }
}
// Extend a syntax context with a given mark and table
// FIXME #8215 : currently pub to allow testing
Extend a syntax context with a given mark and table
FIXME #8215 : currently pub to allow testing
Extend a syntax context with a given mark and table FIXME #8215 : currently pub to allow testing
pub fn new_mark_internal(m: Mrk, tail: SyntaxContext, table: &SCTable)
                         -> SyntaxContext {
    let key = (tail,m);
    // FIXME #5074 : can't use more natural style because we're missing
    // flow-sensitivity. Results in two lookups on a hash table hit.
    // also applies to new_rename_internal, below.
    // let try_lookup = table.mark_memo.find(&key);
    let mut mark_memo = table.mark_memo.borrow_mut();
    match mark_memo.get().contains_key(&key) {
        false => {
            let new_idx = {
                let mut table = table.table.borrow_mut();
                idx_push(table.get(), Mark(m,tail))
            };
            mark_memo.get().insert(key,new_idx);
            new_idx
        }
        true => {
            match mark_memo.get().find(&key) {
                None => fail!("internal error: key disappeared 2013042901"),
                Some(idxptr) => {*idxptr}
            }
        }
    }
}
pub fn new_mark_internal ( m : Mrk , tail : SyntaxContext , table : & SCTable ) -> SyntaxContext { let key = ( tail , m ) ; // FIXME #5074 : can't use more natural style because we're missing // flow-sensitivity. Results in two lookups on a hash table hit. // also applies to new_rename_internal, below. // let try_lookup = table.mark_memo.find(&key); let mut mark_memo = table . mark_memo . borrow_mut ( ) ; match mark_memo . get ( ) . contains_key ( & key ) { false => { let new_idx = { let mut table = table . table . borrow_mut ( ) ; idx_push ( table . get ( ) , Mark ( m , tail ) ) } ; mark_memo . get ( ) . insert ( key , new_idx ) ; new_idx } true => { match mark_memo . get ( ) . find ( & key ) { None => fail ! ( " " ) , Some ( idxptr ) => { * idxptr } } } } }
Extend a syntax context with a given mark and table
FIXME #8215 : currently pub to allow testing
Extend a syntax context with a given mark and table FIXME #8215 : currently pub to allow testing
m
Mrk
tail
SyntaxContext
table
&SCTable
m
Mrk
tail
SyntaxContext
table
&SCTable