| 110 | // Sadly, the `derivative` crate doesn't support this use case. |
| 111 | impl std::fmt::Debug for MirScalarExpr { |
| 112 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { |
| 113 | match self { |
| 114 | MirScalarExpr::Column(i, TreatAsEqual(Some(name))) => { |
| 115 | write!(f, "Column({i}, {name:?})") |
| 116 | } |
| 117 | MirScalarExpr::Column(i, TreatAsEqual(None)) => write!(f, "Column({i})"), |
| 118 | MirScalarExpr::Literal(lit, typ) => write!(f, "Literal({lit:?}, {typ:?})"), |
| 119 | MirScalarExpr::CallUnmaterializable(func) => { |
| 120 | write!(f, "CallUnmaterializable({func:?})") |
| 121 | } |
| 122 | MirScalarExpr::CallUnary { func, expr } => { |
| 123 | write!(f, "CallUnary({func:?}, {expr:?})") |
| 124 | } |
| 125 | MirScalarExpr::CallBinary { func, expr1, expr2 } => { |
| 126 | write!(f, "CallBinary({func:?}, {expr1:?}, {expr2:?})") |
| 127 | } |
| 128 | MirScalarExpr::CallVariadic { func, exprs } => { |
| 129 | write!(f, "CallVariadic({func:?}, {exprs:?})") |
| 130 | } |
| 131 | MirScalarExpr::If { cond, then, els } => { |
| 132 | write!(f, "If({cond:?}, {then:?}, {els:?})") |
| 133 | } |
| 134 | } |
| 135 | } |
| 136 | } |
| 137 | |
| 138 | impl MirScalarExpr { |