18 if (!other.Is<DerivedT>()) {
23 const auto& otherBinaryExpression =
static_cast<const DerivedT<Expression, Expression>&
>(*otherGeneralized);
25 auto specializedMostSigOp = RecursiveCast<MostSigOpT>(otherBinaryExpression.GetMostSigOp());
26 auto specializedLeastSigOp = RecursiveCast<LeastSigOpT>(otherBinaryExpression.GetLeastSigOp());
28 if (specializedMostSigOp && specializedLeastSigOp) {
36 auto otherWithSwappedOps
37 = otherBinaryExpression.SwapOperands();
39 specializedMostSigOp = RecursiveCast<MostSigOpT>(otherWithSwappedOps.GetMostSigOp());
40 specializedLeastSigOp = RecursiveCast<LeastSigOpT>(otherWithSwappedOps.GetLeastSigOp());
42 if (specializedMostSigOp && specializedLeastSigOp) {