diff options
author | Greg Brown <gmb60@cam.ac.uk> | 2021-04-27 13:07:27 +0100 |
---|---|---|
committer | Greg Brown <gmb60@cam.ac.uk> | 2021-04-27 13:07:27 +0100 |
commit | 51dcf19eb6f8d2127f3dedfc1d7d5326d7a8017b (patch) | |
tree | 9d66a63fa1d017cad1b4483399950bf216d58bf8 /src/chomp/ast/error.rs | |
parent | 61eb62dde6a62cf19d33d5c689b0c3a4f36d93c3 (diff) |
Start rewrite using query system.queries
Diffstat (limited to 'src/chomp/ast/error.rs')
-rw-r--r-- | src/chomp/ast/error.rs | 52 |
1 files changed, 0 insertions, 52 deletions
diff --git a/src/chomp/ast/error.rs b/src/chomp/ast/error.rs deleted file mode 100644 index 9057ec3..0000000 --- a/src/chomp/ast/error.rs +++ /dev/null @@ -1,52 +0,0 @@ -use super::{Expression, Lambda, NamedExpression}; -use proc_macro2::Span; -use std::{ - error::Error, - fmt::{self, Display}, -}; - -#[derive(Debug)] -pub enum TranslateError { - CallNotAFunction { - on: Expression, - span: Option<Span>, - }, - WrongArgCount { - lambda: Lambda, - args: Vec<NamedExpression>, - span: Option<Span>, - }, -} - -impl From<TranslateError> for syn::Error { - fn from(e: TranslateError) -> Self { - let msg = e.to_string(); - let span = match e { - TranslateError::CallNotAFunction { span, .. } - | TranslateError::WrongArgCount { span, .. } => span, - }; - - Self::new(span.unwrap_or_else(Span::call_site), msg) - } -} - -impl Display for TranslateError { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - match self { - Self::CallNotAFunction { .. } => { - write!(f, "call expected a function") - } - Self::WrongArgCount { lambda, args, .. } => match (lambda.args.len(), args.len()) { - (1, n) => write!(f, "this function takes 1 argument but {} were supplied", n), - (m, _) => write!(f, "this function takes {} arguments but 1 was supplied", m), - (m, n) => write!( - f, - "this function takes {} arguments but {} were supplied", - m, n - ), - }, - } - } -} - -impl Error for TranslateError {} |