From 07e03498f26afbf647102d656c90d447f8586820 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 5 Oct 2022 17:01:07 +0300 Subject: feat(tvix/eval): add method for emitting runtime warnings This lets the VM emit warnings when it encounters situations that should only be warned about at runtime. For starters, this is used to pass through compilation warnings that come up when `import` is used. Change-Id: I0c4bc8c534d699999887c430d93629fadfa662c4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/6868 Reviewed-by: sterni Tested-by: BuildkiteCI --- corp/tvixbolt/src/main.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'corp/tvixbolt') diff --git a/corp/tvixbolt/src/main.rs b/corp/tvixbolt/src/main.rs index f81ae070a2..8099a5238d 100644 --- a/corp/tvixbolt/src/main.rs +++ b/corp/tvixbolt/src/main.rs @@ -292,7 +292,18 @@ fn eval(trace: bool, code: &str) -> Output { }; match result { - Ok(value) => writeln!(&mut out.output, "{}", value).unwrap(), + Ok(result) => { + for warning in result.warnings { + writeln!( + &mut out.warnings, + "{}\n", + warning.fancy_format_str(&source).trim(), + ) + .unwrap(); + } + + writeln!(&mut out.output, "{}", result.value).unwrap() + } Err(err) => writeln!( &mut out.runtime_errors, "{}", -- cgit 1.4.1