pub fn trivially_expression(&self) -> bool {
        match &self {
            Node::AnonFun { .. }
            | Node::PropertyCall { .. }
            | Node::Id { .. }
            | Node::Set { .. }
            | Node::SetBuilder { .. }
            | Node::List { .. }
            | Node::ListBuilder { .. }
            | Node::Tuple { .. }
            | Node::Range { .. }
            | Node::Real { .. }
            | Node::Int { .. }
            | Node::ENum { .. }
            | Node::Str { .. }
            | Node::Bool { .. }
            | Node::Match { .. }
            | Node::Underscore
            | Node::Undefined
            | Node::Pass
            | Node::_Self
            | Node::Question { .. }
            | Node::QuestionOp { .. } => true,

            Node::IfElse { el, .. } => el.is_some(),

            Node::Script { statements } | Node::Block { statements } =>
                if let Some(stmt) = statements.last() {
                    stmt.node.trivially_expression()
                } else {
                    false
                },

            _ => self.is_operator()
        }
    }
/// True if node is an expression with certainty.
True if node is an expression with certainty.
True if node is an expression with certainty .
pub fn trivially_expression(&self) -> bool {
        match &self {
            Node::AnonFun { .. }
            | Node::PropertyCall { .. }
            | Node::Id { .. }
            | Node::Set { .. }
            | Node::SetBuilder { .. }
            | Node::List { .. }
            | Node::ListBuilder { .. }
            | Node::Tuple { .. }
            | Node::Range { .. }
            | Node::Real { .. }
            | Node::Int { .. }
            | Node::ENum { .. }
            | Node::Str { .. }
            | Node::Bool { .. }
            | Node::Match { .. }
            | Node::Underscore
            | Node::Undefined
            | Node::Pass
            | Node::_Self
            | Node::Question { .. }
            | Node::QuestionOp { .. } => true,
            Node::IfElse { el, .. } => el.is_some(),
            Node::Script { statements } | Node::Block { statements } =>
                if let Some(stmt) = statements.last() {
                    stmt.node.trivially_expression()
                } else {
                    false
                },
            _ => self.is_operator()
        }
    }
pub fn trivially_expression ( & self ) -> bool { match & self { Node :: AnonFun { .. } | Node :: PropertyCall { .. } | Node :: Id { .. } | Node :: Set { .. } | Node :: SetBuilder { .. } | Node :: List { .. } | Node :: ListBuilder { .. } | Node :: Tuple { .. } | Node :: Range { .. } | Node :: Real { .. } | Node :: Int { .. } | Node :: ENum { .. } | Node :: Str { .. } | Node :: Bool { .. } | Node :: Match { .. } | Node :: Underscore | Node :: Undefined | Node :: Pass | Node :: _Self | Node :: Question { .. } | Node :: QuestionOp { .. } => true , Node :: IfElse { el , .. } => el . is_some ( ) , Node :: Script { statements } | Node :: Block { statements } => if let Some ( stmt ) = statements . last ( ) { stmt . node . trivially_expression ( ) } else { false } , _ => self . is_operator ( ) } }
True if node is an expression with certainty.
True if node is an expression with certainty .
&self