Skip to main content

crisp_errors/
error.rs

1use crisp_ast::Span;
2use thiserror::Error;
3
4#[derive(Debug, Error)]
5pub enum ErrorPassError {
6    #[error("[E0070] function `{name}` asserts `!never` but may produce `{produced}`")]
7    NeverViolated {
8        name: String,
9        produced: String,
10        span: Span,
11    },
12    #[error("[E0071] function `{name}` declares `!{declared}` but body may produce `{produced}`")]
13    DeclaredMismatch {
14        name: String,
15        declared: String,
16        produced: String,
17        span: Span,
18    },
19    #[error("[E0072] resolve error: {0}")]
20    Resolve(#[from] crisp_resolve::ResolveError),
21    #[error("[E0073] type error: {0}")]
22    Type(#[from] crisp_typeck::TypeError),
23}