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
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue