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}