protected Collection<Symbol> getMembers(boolean cache) {
        if (members != null) {
            return members;
        }
        LinkedList<Symbol> res = new LinkedList<Symbol>();
        for (Scope.Entry e = sym.members().elems; e != null; e = e.sibling) {
            if (e.sym != null && !unwanted(e.sym)) {
                res.addFirst(e.sym);
            }
        }
        return cache ? (members = res) : res;
    }