Skip to main content

lisette_semantics/
lib.rs

1pub mod analyze;
2pub mod cache;
3pub mod call_classification;
4pub mod call_target;
5pub mod checker;
6pub mod context;
7pub mod diagnostics;
8pub mod facts;
9pub mod loader;
10pub mod module_graph;
11pub mod passes;
12pub mod path;
13pub mod prelude;
14pub mod promotion;
15pub mod sealing;
16pub mod store;
17
18use syntax::ast::Expression;
19
20pub(crate) fn is_trivial_expression(expression: &Expression) -> bool {
21    match expression {
22        Expression::Unit { .. } => true,
23        Expression::Block { items, .. } => {
24            items.is_empty() || (items.len() == 1 && matches!(items[0], Expression::Unit { .. }))
25        }
26        Expression::Tuple { elements, .. } => elements.is_empty(),
27        _ => false,
28    }
29}