diff options
author | Vincent Ambo <tazjin@tvl.su> | 2024-02-20T08·29+0700 |
---|---|---|
committer | tazjin <tazjin@tvl.su> | 2024-02-20T09·18+0000 |
commit | 3c87687798a3cfb6c3cfcc231e6c60511e3341ab (patch) | |
tree | 90dd1bb7daefbd09cd308240858689c6a405701f /tvix/eval/src/errors.rs | |
parent | b38badf2063b4eba31abffbeba01c1c8c3212be8 (diff) |
refactor(tvix/eval): add SourceCode directly into error types r/7571
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
Diffstat (limited to 'tvix/eval/src/errors.rs')
-rw-r--r-- | tvix/eval/src/errors.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/tvix/eval/src/errors.rs b/tvix/eval/src/errors.rs index b59ee675dda4..0f17aafe8703 100644 --- a/tvix/eval/src/errors.rs +++ b/tvix/eval/src/errors.rs @@ -293,10 +293,11 @@ pub struct Error { pub kind: ErrorKind, pub span: Span, pub contexts: Vec<String>, + pub source: SourceCode, } impl Error { - pub fn new(mut kind: ErrorKind, span: Span) -> Self { + pub fn new(mut kind: ErrorKind, span: Span, source: SourceCode) -> Self { let mut contexts = vec![]; while let ErrorKind::WithContext { context, @@ -311,6 +312,7 @@ impl Error { kind, span, contexts, + source, } } } |