mirror of
https://github.com/astral-sh/ruff.git
synced 2025-08-04 10:48:32 +00:00
Add message to formatter SyntaxError (#5881)
**Summary** Add a static string error message to the formatter syntax error so we can disambiguate where the syntax error came from **Test Plan** No fixed tests, we don't expect this to occur, but it helped with transformers syntax error debugging: ``` Error: Failed to format node Caused by: syntax error: slice first colon token was not a colon ```
This commit is contained in:
parent
46a17d11f3
commit
63ed7a31e8
6 changed files with 38 additions and 13 deletions
|
@ -8,7 +8,7 @@ use std::error::Error;
|
|||
pub enum FormatError {
|
||||
/// In case a node can't be formatted because it either misses a require child element or
|
||||
/// a child is present that should not (e.g. a trailing comma after a rest element).
|
||||
SyntaxError,
|
||||
SyntaxError { message: &'static str },
|
||||
/// In case range formatting failed because the provided range was larger
|
||||
/// than the formatted syntax tree
|
||||
RangeError { input: TextRange, tree: TextRange },
|
||||
|
@ -28,7 +28,9 @@ pub enum FormatError {
|
|||
impl std::fmt::Display for FormatError {
|
||||
fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
match self {
|
||||
FormatError::SyntaxError => fmt.write_str("syntax error"),
|
||||
FormatError::SyntaxError {message} => {
|
||||
std::write!(fmt, "syntax error: {message}")
|
||||
},
|
||||
FormatError::RangeError { input, tree } => std::write!(
|
||||
fmt,
|
||||
"formatting range {input:?} is larger than syntax tree {tree:?}"
|
||||
|
@ -57,6 +59,12 @@ impl From<&PrintError> for FormatError {
|
|||
}
|
||||
}
|
||||
|
||||
impl FormatError {
|
||||
pub fn syntax_error(message: &'static str) -> Self {
|
||||
Self::SyntaxError { message }
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Copy, Clone, Eq, PartialEq)]
|
||||
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
|
||||
pub enum InvalidDocumentError {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue