protospec_build/asg/expression/binary.rs
1use super::*;
2
3#[derive(PartialEq, Clone, Debug)]
4pub struct BinaryExpression {
5 pub op: BinaryOp,
6 pub left: Box<Expression>,
7 pub right: Box<Expression>,
8 pub span: Span,
9}
10
11impl AsgExpression for BinaryExpression {
12 fn get_type(&self) -> Option<Type> {
13 use BinaryOp::*;
14 match self.op {
15 Lt | Gt | Lte | Gte | Eq | Ne | Or | And => Some(Type::Bool),
16 _ => self.left.get_type().or(self.right.get_type()),
17 }
18 }
19}