| 34 | } |
| 35 | |
| 36 | @Override |
| 37 | public Expr optimize(final CompileContext cc) throws QueryException { |
| 38 | final Expr expr1 = exprs[0], expr2 = exprs[1]; |
| 39 | final SeqType st1 = expr1.seqType(), st2 = expr2.seqType(); |
| 40 | if(st1.oneOrMore() && st2.oneOrMore()) exprType.assign(Occ.EXACTLY_ONE); |
| 41 | |
| 42 | final Expr expr = emptyExpr(); |
| 43 | return expr == this && values(false, cc) ? cc.preEval(this) : cc.replaceWith(this, expr); |
| 44 | } |
| 45 | |
| 46 | @Override |
| 47 | public Item item(final QueryContext qc, final InputInfo ii) throws QueryException { |