use std::convert::Infallible;
use thiserror::Error;
use crate::{expr::NonConstIRBexprError, meta::Meta};
#[derive(Error, Clone, Debug)]
pub enum Error {
#[error("boolean expression with no elements")]
EmptyBexpr,
#[error("{2}: detected {0} statement with predicate evaluating to 'false': {1}")]
FoldedFalseStmt(&'static str, String, Meta),
#[error(transparent)]
ExpectedConstBexpr(#[from] NonConstIRBexprError),
}
impl From<Infallible> for Error {
fn from(_value: Infallible) -> Self {
unreachable!()
}
}