pred.dontOptimize();
if (!canOptimize) { pred.dontOptimize(); }
    public Type typeCheck(SymbolTable stable) throws TypeCheckError {	Type ptype = _primary.typeCheck(stable);	if (ptype instanceof NodeSetType == false) {	    if (ptype instanceof ReferenceType)  {		_primary = new CastExpr(_primary, Type.NodeSet);	    }	    else {		throw new TypeCheckError(this);	    }	}        // Type check predicates and turn all optimizations off	int n = _predicates.size();	for (int i = 0; i < n; i++) {	    Predicate pred = (Predicate) _predicates.elementAt(i);            pred.dontOptimize();	    pred.typeCheck(stable);	}	return _type = Type.NodeSet;	    }