| 80 | } |
| 81 | |
| 82 | @Override |
| 83 | public final VarUsage count(final Var var) { |
| 84 | VarUsage uses = exprs[0].count(var); |
| 85 | // variable reference: check remaining operands |
| 86 | if(var != null) { |
| 87 | final boolean items = items(); |
| 88 | final int el = exprs.length; |
| 89 | for(int e = 1; e < el && uses != VarUsage.MORE_THAN_ONCE; e++) { |
| 90 | // EXPR -> ($a) ...single usage |
| 91 | // EXPR ! ($a) ...multiple usages |
| 92 | final VarUsage vu = exprs[e].count(var); |
| 93 | if(vu != VarUsage.NEVER) uses = items ? VarUsage.MORE_THAN_ONCE : uses.plus(vu); |
| 94 | } |
| 95 | } |
| 96 | return uses; |
| 97 | } |
| 98 | |
| 99 | @Override |
| 100 | public final boolean inlineable(final InlineContext ic) { |