public int canCombine(CombineableOperator combOp) {
		// GlobalOptions.err.println("Try to combine "+e+" into "+this);
		if (combOp.getLValue() instanceof LocalStoreOperator
				&& ((Operator) combOp).getFreeOperandCount() == 0) {
			// Special case for locals created on inlining methods, which may
			// combine everywhere, as long as there are no side effects.

			for (int i = 0; i < subExpressions.length; i++) {
				int result = subExpressions[i].canCombine(combOp);
				if (result != 0)
					return result;
				if (subExpressions[i].hasSideEffects((Expression) combOp))
					return -1;
			}
		}

		if (combOp.lvalueMatches(this))
			return subsEquals((Operator) combOp) ? 1 : -1;
		if (subExpressions.length > 0)
			return subExpressions[0].canCombine(combOp);
		return 0;
	}