mirror of
https://github.com/RustPython/Parser.git
synced 2025-07-08 05:35:22 +00:00
integrate CodegenError to compiler-core::Error
This commit is contained in:
parent
9d67b944cf
commit
1192a11d39
4 changed files with 24 additions and 22 deletions
|
@ -1,12 +1,6 @@
|
|||
use rustpython_compiler_core::Location;
|
||||
use std::{error::Error, fmt};
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct CodegenError {
|
||||
pub error: CodegenErrorType,
|
||||
pub location: Location,
|
||||
pub source_path: String,
|
||||
}
|
||||
pub type CodegenError = rustpython_compiler_core::Error<CodegenErrorType>;
|
||||
|
||||
#[derive(Debug)]
|
||||
#[non_exhaustive]
|
||||
|
@ -87,15 +81,3 @@ impl fmt::Display for CodegenErrorType {
|
|||
}
|
||||
|
||||
impl Error for CodegenErrorType {}
|
||||
|
||||
impl fmt::Display for CodegenError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
self.location.fmt_with(f, &self.error)
|
||||
}
|
||||
}
|
||||
|
||||
impl Error for CodegenError {
|
||||
fn source(&self) -> Option<&(dyn Error + 'static)> {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
use std::fmt::Display;
|
||||
|
||||
use crate::Location;
|
||||
|
||||
#[derive(Debug, PartialEq, Eq)]
|
||||
|
@ -15,6 +17,24 @@ impl<T> std::ops::Deref for Error<T> {
|
|||
}
|
||||
}
|
||||
|
||||
impl<T> std::error::Error for Error<T>
|
||||
where
|
||||
T: std::fmt::Display + std::fmt::Debug,
|
||||
{
|
||||
fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
|
||||
None
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> Display for Error<T>
|
||||
where
|
||||
T: std::fmt::Display,
|
||||
{
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
|
||||
self.location.fmt_with(f, &self.error)
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> Error<T> {
|
||||
pub fn error(self) -> T {
|
||||
self.error
|
||||
|
|
|
@ -193,7 +193,7 @@ impl ParseError {
|
|||
|
||||
impl fmt::Display for ParseError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
self.location.fmt_with(f, &self.error)
|
||||
self.0.fmt(f)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ pub use rustpython_codegen::compile::CompileOpts;
|
|||
pub use rustpython_compiler_core::Mode;
|
||||
|
||||
#[derive(Debug, thiserror::Error)]
|
||||
pub enum CodegenErrorType {
|
||||
pub enum CompileErrorType {
|
||||
#[error(transparent)]
|
||||
Compile(#[from] rustpython_codegen::error::CodegenErrorType),
|
||||
#[error(transparent)]
|
||||
|
@ -20,7 +20,7 @@ pub enum CodegenErrorType {
|
|||
|
||||
#[derive(Debug, thiserror::Error)]
|
||||
pub struct CompileError {
|
||||
pub error: CodegenErrorType,
|
||||
pub error: CompileErrorType,
|
||||
pub source_path: String,
|
||||
pub location: Location,
|
||||
pub statement: Option<String>,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue