KCL: Use named fields for KclError (#7321)
We've changed the unnamed field of `KclError` variants to a named called `details`. To clarify: previously KCL errors looked like this: ```rust pub enum KclError { Lexical(KclErrorDetails), Syntax(KclErrorDetails), ``` Now they look like this: ```rust pub enum KclError { Lexical { details: KclErrorDetails }, Syntax { details: KclErrorDetails }, } ``` This lets us more easily add fields to the errors. For example, in the UndefinedValue case, adding a field for what the undefined name was. This PR refactors the code to make my PR in https://github.com/KittyCAD/modeling-app/pull/7309 much easier. Pure refactor, should not change any behaviour.
This commit is contained in:
@ -28,7 +28,7 @@ impl Default for FileManager {
|
||||
impl FileSystem for FileManager {
|
||||
async fn read(&self, path: &TypedPath, source_range: SourceRange) -> Result<Vec<u8>, KclError> {
|
||||
tokio::fs::read(&path.0).await.map_err(|e| {
|
||||
KclError::Io(KclErrorDetails::new(
|
||||
KclError::new_io(KclErrorDetails::new(
|
||||
format!("Failed to read file `{}`: {}", path.display(), e),
|
||||
vec![source_range],
|
||||
))
|
||||
@ -37,7 +37,7 @@ impl FileSystem for FileManager {
|
||||
|
||||
async fn read_to_string(&self, path: &TypedPath, source_range: SourceRange) -> Result<String, KclError> {
|
||||
tokio::fs::read_to_string(&path.0).await.map_err(|e| {
|
||||
KclError::Io(KclErrorDetails::new(
|
||||
KclError::new_io(KclErrorDetails::new(
|
||||
format!("Failed to read file `{}`: {}", path.display(), e),
|
||||
vec![source_range],
|
||||
))
|
||||
@ -49,7 +49,7 @@ impl FileSystem for FileManager {
|
||||
if e.kind() == std::io::ErrorKind::NotFound {
|
||||
Ok(false)
|
||||
} else {
|
||||
Err(KclError::Io(KclErrorDetails::new(
|
||||
Err(KclError::new_io(KclErrorDetails::new(
|
||||
format!("Failed to check if file `{}` exists: {}", path.display(), e),
|
||||
vec![source_range],
|
||||
)))
|
||||
@ -71,7 +71,7 @@ impl FileSystem for FileManager {
|
||||
}
|
||||
|
||||
let mut read_dir = tokio::fs::read_dir(&path).await.map_err(|e| {
|
||||
KclError::Io(KclErrorDetails::new(
|
||||
KclError::new_io(KclErrorDetails::new(
|
||||
format!("Failed to read directory `{}`: {}", path.display(), e),
|
||||
vec![source_range],
|
||||
))
|
||||
|
Reference in New Issue
Block a user