From d6643f66b1cb8db5fc802ad53ef0d2633a51e815 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Mon, 3 Oct 2022 13:21:28 +0300 Subject: feat(tvix/eval): use fancy error formatting in REPL Change-Id: I8d5652d797b012bc3d5248ca2b2d0c87572dbf2e Reviewed-on: https://cl.tvl.fyi/c/depot/+/6851 Tested-by: BuildkiteCI Reviewed-by: wpcarro --- tvix/eval/src/eval.rs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'tvix/eval/src/eval.rs') diff --git a/tvix/eval/src/eval.rs b/tvix/eval/src/eval.rs index 21591802a443..e6199e00b0e2 100644 --- a/tvix/eval/src/eval.rs +++ b/tvix/eval/src/eval.rs @@ -81,21 +81,22 @@ pub fn interpret(code: &str, location: Option, options: Options) -> Eva } for error in &result.errors { - eprintln!( - "compiler error: {:?} at `{}`[line {}]", - error.kind, - file.source_slice(error.span), - file.find_line(error.span.low()) + 1 - ); + error.fancy_format_stderr(&codemap); } if let Some(err) = result.errors.last() { return Err(err.clone()); } - if options.trace_runtime { + let result = if options.trace_runtime { crate::vm::run_lambda(&mut TracingObserver::new(std::io::stderr()), result.lambda) } else { crate::vm::run_lambda(&mut NoOpObserver::default(), result.lambda) + }; + + if let Err(err) = &result { + err.fancy_format_stderr(&codemap); } + + result } -- cgit 1.4.1