fn apply_mark_internal(m: Mrk, ctxt: SyntaxContext, table: &SCTable) -> SyntaxContext {
    let ctxts = &mut *table.table.borrow_mut();
    match ctxts[ctxt.0 as usize] {
        // Applying the same mark twice is a no-op.
        Mark(outer_mark, prev_ctxt) if outer_mark == m => return prev_ctxt,
        _ => *table.marks.borrow_mut().entry((ctxt, m)).or_insert_with(|| {
            SyntaxContext(idx_push(ctxts, Mark(m, ctxt)))
        }),
    }
}
/// Extend a syntax context with a given mark and sctable (explicit memoization)
Extend a syntax context with a given mark and sctable (explicit memoization)
Extend a syntax context with a given mark and sctable ( explicit memoization )
fn apply_mark_internal(m: Mrk, ctxt: SyntaxContext, table: &SCTable) -> SyntaxContext {
    let ctxts = &mut *table.table.borrow_mut();
    match ctxts[ctxt.0 as usize] {
        // Applying the same mark twice is a no-op.
        Mark(outer_mark, prev_ctxt) if outer_mark == m => return prev_ctxt,
        _ => *table.marks.borrow_mut().entry((ctxt, m)).or_insert_with(|| {
            SyntaxContext(idx_push(ctxts, Mark(m, ctxt)))
        }),
    }
}
fn apply_mark_internal ( m : Mrk , ctxt : SyntaxContext , table : & SCTable ) -> SyntaxContext { let ctxts = & mut * table . table . borrow_mut ( ) ; match ctxts [ ctxt . 0 as usize ] { // Applying the same mark twice is a no-op. Mark ( outer_mark , prev_ctxt ) if outer_mark == m => return prev_ctxt , _ => * table . marks . borrow_mut ( ) . entry ( ( ctxt , m ) ) . or_insert_with ( | | { SyntaxContext ( idx_push ( ctxts , Mark ( m , ctxt ) ) ) } ) , } }
Extend a syntax context with a given mark and sctable (explicit memoization)
Extend a syntax context with a given mark and sctable ( explicit memoization )
m
Mrk
ctxt
SyntaxContext
table
&SCTable
m
Mrk
ctxt
SyntaxContext
table
&SCTable