public Expression combine(CombineableOperator comb) {
		Operator combOp = (Operator) comb;
		if (comb.lvalueMatches(this)) {
			/* We already checked in canCombine that subExpressions match */
			comb.makeNonVoid();
			combOp.parent = parent;
			return combOp;
		}
		for (int i = 0; i < subExpressions.length; i++) {
			Expression combined = subExpressions[i].combine(comb);
			if (combined != null) {
				subExpressions[i] = combined;
				updateType();
				return this;
			}
		}
		return null;
	}