fn resolve_internal(id: Ident, table: &SCTable) -> Name {
    match table.table.borrow()[id.ctxt.0 as usize] {
        EmptyCtxt => id.name,
        // ignore marks here:
        Mark(_, subctxt) => resolve_internal(Ident::new(id.name, subctxt), table),
        Rename(name) => name,
        IllegalCtxt => panic!("expected resolvable context, got IllegalCtxt")
    }
}
/// Resolve a syntax object to a name, per MTWT.
/// adding memoization to resolve 500+ seconds in resolve for librustc (!)
Resolve a syntax object to a name, per MTWT.
adding memoization to resolve 500+ seconds in resolve for librustc (!)
Resolve a syntax object to a name per MTWT . adding memoization to resolve 500 + seconds in resolve for librustc ( ! )
fn resolve_internal(id: Ident, table: &SCTable) -> Name {
    match table.table.borrow()[id.ctxt.0 as usize] {
        EmptyCtxt => id.name,
        // ignore marks here:
        Mark(_, subctxt) => resolve_internal(Ident::new(id.name, subctxt), table),
        Rename(name) => name,
        IllegalCtxt => panic!("expected resolvable context, got IllegalCtxt")
    }
}
fn resolve_internal ( id : Ident , table : & SCTable ) -> Name { match table . table . borrow ( ) [ id . ctxt . 0 as usize ] { EmptyCtxt => id . name , // ignore marks here: Mark ( _ , subctxt ) => resolve_internal ( Ident :: new ( id . name , subctxt ) , table ) , Rename ( name ) => name , IllegalCtxt => panic ! ( " " ) } }
Resolve a syntax object to a name, per MTWT.
Resolve a syntax object to a name per MTWT .
id
Ident
table
&SCTable
id
Ident
table
&SCTable