refactor(tvix/eval): remove code and location from struct
Instead, it's passed in the evaluate/compile_only functions, which feels more naturally. It lets us set up the Evaluation struct long before we actually feed it with data to evaluate. Now that Evaluation::new() would be accepting an empty list of arguments, we can simply implement Default, making things a bit more idiomatic. Change-Id: I4369658634909a0c504fdffa18242a130daa0239 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10475 Tested-by: BuildkiteCI Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: flokli <flokli@flokli.de>
This commit is contained in:
parent
a5c5f1a29e
commit
4fba57c2c9
10 changed files with 72 additions and 69 deletions
|
|
@ -62,7 +62,7 @@ struct Args {
|
|||
/// and the result itself. The return value indicates whether
|
||||
/// evaluation succeeded.
|
||||
fn interpret(code: &str, path: Option<PathBuf>, args: &Args, explain: bool) -> bool {
|
||||
let mut eval = tvix_eval::Evaluation::new_impure(code, path);
|
||||
let mut eval = tvix_eval::Evaluation::new_impure();
|
||||
|
||||
eval.strict = args.strict;
|
||||
|
||||
|
|
@ -101,7 +101,7 @@ fn interpret(code: &str, path: Option<PathBuf>, args: &Args, explain: bool) -> b
|
|||
eval.runtime_observer = Some(&mut runtime_observer);
|
||||
}
|
||||
|
||||
eval.evaluate()
|
||||
eval.evaluate(code, path)
|
||||
};
|
||||
|
||||
if args.display_ast {
|
||||
|
|
@ -135,7 +135,7 @@ fn interpret(code: &str, path: Option<PathBuf>, args: &Args, explain: bool) -> b
|
|||
/// Interpret the given code snippet, but only run the Tvix compiler
|
||||
/// on it and return errors and warnings.
|
||||
fn lint(code: &str, path: Option<PathBuf>, args: &Args) -> bool {
|
||||
let mut eval = tvix_eval::Evaluation::new_impure(code, path);
|
||||
let mut eval = tvix_eval::Evaluation::new_impure();
|
||||
eval.strict = args.strict;
|
||||
|
||||
let source_map = eval.source_map();
|
||||
|
|
@ -150,7 +150,7 @@ fn lint(code: &str, path: Option<PathBuf>, args: &Args) -> bool {
|
|||
eprintln!("warning: --trace-runtime has no effect with --compile-only!");
|
||||
}
|
||||
|
||||
let result = eval.compile_only();
|
||||
let result = eval.compile_only(code, path);
|
||||
|
||||
if args.display_ast {
|
||||
if let Some(ref expr) = result.expr {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue