Skip to main content

vyre_lower/
error.rs

1//! Errors surfaced by the lowering pass.
2
3use thiserror::Error;
4
5#[derive(Debug, Error)]
6pub enum LowerError {
7    #[error("unsupported IR construct in lowering: {0}")]
8    UnsupportedConstruct(String),
9
10    #[error("invalid program: {0}")]
11    InvalidProgram(String),
12
13    #[error("operand id space exhausted (over u32::MAX values in one kernel)")]
14    OperandIdOverflow,
15
16    #[error("nested body depth exceeded reasonable limit ({0})")]
17    NestingTooDeep(usize),
18
19    #[error("buffer not declared but referenced: {0}")]
20    UndeclaredBuffer(String),
21}