@Override FItem evalFunc(final QueryContext ctx) throws QueryException { final int ar = expr.length - 1; final Item it = checkItem(expr[ar], ctx); if (!(it instanceof FItem)) throw INVFUNCITEM.get(info, it.type); final FItem fit = (FItem) it; if (fit.arity() != ar) throw INVARITY.get(info, fit, ar); if (!sc.mixUpdates && updating != fit.annotations().contains(Ann.Q_UPDATING)) throw (updating ? UPFUNCNOTUP : UPFUNCUP).get(info); return fit; }