pub fn new_mark_internal(m:Mrk, tail:SyntaxContext,table:&mut 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);
    match table.mark_memo.contains_key(&key) {
        false => {
            let new_idx = idx_push(&mut table.table,Mark(m,tail));
            table.mark_memo.insert(key,new_idx);
            new_idx
        }
        true => {
            match table.mark_memo.find(&key) {
                None => fail!(~"internal error: key disappeared 2013042901"),
                Some(idxptr) => {*idxptr}
            }
        }
    }
}
// Extend a syntax context with a given mark and table
// FIXME #4536 : currently pub to allow testing
Extend a syntax context with a given mark and table
FIXME #4536 : currently pub to allow testing
Extend a syntax context with a given mark and table FIXME #4536 : currently pub to allow testing
pub fn new_mark_internal(m:Mrk, tail:SyntaxContext,table:&mut 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);
    match table.mark_memo.contains_key(&key) {
        false => {
            let new_idx = idx_push(&mut table.table,Mark(m,tail));
            table.mark_memo.insert(key,new_idx);
            new_idx
        }
        true => {
            match table.mark_memo.find(&key) {
                None => fail!(~"internal error: key disappeared 2013042901"),
                Some(idxptr) => {*idxptr}
            }
        }
    }
}
pub fn new_mark_internal ( m : Mrk , tail : SyntaxContext , table : & mut 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); match table . mark_memo . contains_key ( & key ) { false => { let new_idx = idx_push ( & mut table . table , Mark ( m , tail ) ) ; table . mark_memo . insert ( key , new_idx ) ; new_idx } true => { match table . mark_memo . find ( & key ) { None => fail ! ( " " ) , Some ( idxptr ) => { * idxptr } } } } }
Extend a syntax context with a given mark and table
FIXME #4536 : currently pub to allow testing
Extend a syntax context with a given mark and table FIXME #4536 : currently pub to allow testing
m
Mrk
tail
SyntaxContext
table
&mut SCTable
m
Mrk
tail
SyntaxContext
table
&mut SCTable