oxilean_codegen/lcnf/
validationerror_traits.rs1use super::types::ValidationError;
13use std::fmt;
14
15impl fmt::Display for ValidationError {
16 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
17 match self {
18 ValidationError::UnboundVariable(id) => write!(f, "Unbound variable: {}", id),
19 ValidationError::DuplicateBinding(id) => {
20 write!(f, "Duplicate binding: {}", id)
21 }
22 ValidationError::EmptyCase => write!(f, "Empty case expression"),
23 ValidationError::InvalidTag(name, tag) => {
24 write!(f, "Invalid tag {} for constructor {}", tag, name)
25 }
26 ValidationError::NonAtomicArgument => {
27 write!(f, "Non-atomic argument (violates ANF invariant)")
28 }
29 }
30 }
31}
32
33impl std::error::Error for ValidationError {}