refactor(tvix/eval): add SourceCode directly into error types
With this change it's no longer necessary to track the SourceCode struct separately from the evaluation for error reporting: It's just stored directly in the errors. This also ends up resolving an issue in compiler::bindings, where we cloned the Arc containing file references way too often. In fact those clones probably compensate for all additional SourceCode clones during error construction now. Change-Id: Ice93bf161e61f8ea3d48103435e20c53e6aa8c3a Reviewed-on: https://cl.tvl.fyi/c/depot/+/10986 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
This commit is contained in:
parent
b38badf206
commit
3c87687798
6 changed files with 67 additions and 40 deletions
|
|
@ -58,13 +58,14 @@ async fn import_impl(
|
|||
let result = crate::compiler::compile(
|
||||
&parsed.tree().expr().unwrap(),
|
||||
Some(path.clone()),
|
||||
file,
|
||||
// The VM must ensure that a strong reference to the globals outlives
|
||||
// any self-references (which are weak) embedded within the globals. If
|
||||
// the expect() below panics, it means that did not happen.
|
||||
globals
|
||||
.upgrade()
|
||||
.expect("globals dropped while still in use"),
|
||||
&source,
|
||||
&file,
|
||||
&mut NoOpObserver::default(),
|
||||
)
|
||||
.map_err(|err| ErrorKind::ImportCompilerError {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue