1use std::convert::Infallible;
4
5use thiserror::Error;
6
7use crate::{expr::NonConstIRBexprError, meta::Meta};
8
9#[derive(Error, Clone, Debug)]
11pub enum Error {
12 #[error("boolean expression with no elements")]
15 EmptyBexpr,
16 #[error("{2}: detected {0} statement with predicate evaluating to 'false': {1}")]
18 FoldedFalseStmt(&'static str, String, Meta),
19 #[error(transparent)]
21 ExpectedConstBexpr(#[from] NonConstIRBexprError),
22}
23
24impl From<Infallible> for Error {
25 fn from(_value: Infallible) -> Self {
26 unreachable!()
27 }
28}