}
}
+struct Bar(i32);
+
+impl Add for Bar {
+ type Output = Bar;
+
+ fn add(self, other: Self) -> Self {
+ Bar(self.0 & !other.0) // OK: UnNot part of BiExpr as child node
+ }
+}
+
+impl Sub for Bar {
+ type Output = Bar;
+
+ fn sub(self, other: Self) -> Self {
+ if self.0 <= other.0 {
+ Bar(-(self.0 & other.0)) // OK: UnNeg part of BiExpr as parent node
+ } else {
+ Bar(0)
+ }
+ }
+}
+
fn main() {}
fn do_nothing(x: u32) -> u32 {