From 94f582341e4f37228fbdf0997255d6374264b4b3 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 20 Feb 2024 15:38:33 +0700 Subject: refactor(tvix/eval): use internal SourceCode field in error printers Makes use of the SourceCode field now being stored directly in errors (see parent CL). With this change, the default `Display` implementation can now format errors correctly, and there is no need to keep a `SourceCode` around just for error formatting. Updates dependent crates (CLI, serde, tvixbolt) to use this correctly. Change-Id: Iddc5d7a6b4bab391f30a999e4c68aca34304c059 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10987 Tested-by: BuildkiteCI Reviewed-by: flokli --- tvix/serde/src/de.rs | 2 -- tvix/serde/src/error.rs | 9 +++------ 2 files changed, 3 insertions(+), 8 deletions(-) (limited to 'tvix/serde/src') diff --git a/tvix/serde/src/de.rs b/tvix/serde/src/de.rs index 6a020c978f64..e9d4f6cf492a 100644 --- a/tvix/serde/src/de.rs +++ b/tvix/serde/src/de.rs @@ -51,13 +51,11 @@ where config(&mut eval); eval.strict = true; - let source = eval.source_map(); let result = eval.evaluate(src, None); if !result.errors.is_empty() { return Err(Error::NixErrors { errors: result.errors, - source, }); } diff --git a/tvix/serde/src/error.rs b/tvix/serde/src/error.rs index c1d2258bbfe4..d921cc4b4b29 100644 --- a/tvix/serde/src/error.rs +++ b/tvix/serde/src/error.rs @@ -27,10 +27,7 @@ pub enum Error { /// Evaluation of the supplied Nix code failed while computing the /// value for deserialisation. - NixErrors { - errors: Vec, - source: tvix_eval::SourceCode, - }, + NixErrors { errors: Vec }, /// Could not determine an externally tagged enum representation. AmbiguousEnum, @@ -56,7 +53,7 @@ impl Display for Error { write!(f, "expected type {}, but got Nix type {}", expected, got) } - Error::NixErrors { errors, source } => { + Error::NixErrors { errors } => { writeln!( f, "{} occured during Nix evaluation: ", @@ -64,7 +61,7 @@ impl Display for Error { )?; for err in errors { - writeln!(f, "{}", err.fancy_format_str(source))?; + writeln!(f, "{}", err.fancy_format_str())?; } Ok(()) -- cgit 1.4.1