public void updateType() {

		Type newType;

		if (!opAssign) {
			/* An opassign (+=, -=, etc.) doesn't merge rvalue type. */
			Type lvalueType = subExpressions[0].getType();
			Type rvalueType = subExpressions[1].getType();
			subExpressions[0].setType(Type.tSuperType(rvalueType));
			subExpressions[1].setType(Type.tSubType(lvalueType));
		}

		if (!isVoid())
			updateParentType(subExpressions[0].getType());
	}