public Symbol nextSameName; // next child of this parent with same name. public Symbol LookupNext(symbmask_t kindmask) { // Keep traversing the list of symbols with same name and parent. for (Symbol sym = nextSameName; sym != null; sym = sym.nextSameName) { if ((kindmask & sym.mask()) != 0) { return(sym); } } return(null); }
private static Symbol FindCorrectKind(Symbol sym, symbmask_t kindmask) { do { if ((kindmask & sym.mask()) != 0) { return(sym); } sym = sym.nextSameName; } while (sym != null); return(null); }
private static Symbol FindCorrectKind(Symbol sym, symbmask_t kindmask) { do { if ((kindmask & sym.mask()) != 0) { return sym; } sym = sym.nextSameName; } while (sym != null); return null; }
public static Symbol LookupNextSym(Symbol sym, ParentSymbol parent, symbmask_t kindmask) { Debug.Assert(sym.parent == parent); sym = sym.nextSameName; Debug.Assert(sym == null || sym.parent == parent); // Keep traversing the list of symbols with same name and parent. while (sym != null) { if ((kindmask & sym.mask()) > 0) { return(sym); } sym = sym.nextSameName; Debug.Assert(sym == null || sym.parent == parent); } return(null); }