protospec_build/asg/expression/
member.rs

1use super::*;
2
3#[derive(PartialEq, Clone, Debug)]
4pub struct MemberExpression {
5    pub target: Box<Expression>,
6    //todo: this might need to be more general in the future
7    pub member: Arc<Const>,
8    pub span: Span,
9}
10
11impl AsgExpression for MemberExpression {
12    fn get_type(&self) -> Option<Type> {
13        let type_ = self.target.get_type()?.resolved().into_owned();
14        match &*type_.resolved() {
15            Type::Bitfield(_) => {
16                Some(Type::Bool)
17            }
18            _ => None,
19        }
20    }
21}