mirror of
https://github.com/RustPython/Parser.git
synced 2025-07-12 15:45: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};
|
use std::{error::Error, fmt};
|
||||||
|
|
||||||
#[derive(Debug)]
|
pub type CodegenError = rustpython_compiler_core::Error<CodegenErrorType>;
|
||||||
pub struct CodegenError {
|
|
||||||
pub error: CodegenErrorType,
|
|
||||||
pub location: Location,
|
|
||||||
pub source_path: String,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
#[non_exhaustive]
|
#[non_exhaustive]
|
||||||
|
@ -87,15 +81,3 @@ impl fmt::Display for CodegenErrorType {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Error 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;
|
use crate::Location;
|
||||||
|
|
||||||
#[derive(Debug, PartialEq, Eq)]
|
#[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> {
|
impl<T> Error<T> {
|
||||||
pub fn error(self) -> T {
|
pub fn error(self) -> T {
|
||||||
self.error
|
self.error
|
||||||
|
|
|
@ -193,7 +193,7 @@ impl ParseError {
|
||||||
|
|
||||||
impl fmt::Display for ParseError {
|
impl fmt::Display for ParseError {
|
||||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
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;
|
pub use rustpython_compiler_core::Mode;
|
||||||
|
|
||||||
#[derive(Debug, thiserror::Error)]
|
#[derive(Debug, thiserror::Error)]
|
||||||
pub enum CodegenErrorType {
|
pub enum CompileErrorType {
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
Compile(#[from] rustpython_codegen::error::CodegenErrorType),
|
Compile(#[from] rustpython_codegen::error::CodegenErrorType),
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
|
@ -20,7 +20,7 @@ pub enum CodegenErrorType {
|
||||||
|
|
||||||
#[derive(Debug, thiserror::Error)]
|
#[derive(Debug, thiserror::Error)]
|
||||||
pub struct CompileError {
|
pub struct CompileError {
|
||||||
pub error: CodegenErrorType,
|
pub error: CompileErrorType,
|
||||||
pub source_path: String,
|
pub source_path: String,
|
||||||
pub location: Location,
|
pub location: Location,
|
||||||
pub statement: Option<String>,
|
pub statement: Option<String>,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue