mirror of
https://github.com/nushell/nushell
synced 2025-01-13 21:55:07 +00:00
Report parse warns and compile errs when running script files (#13369)
# Description Report parse warnings and compile errors when running script files. It's useful to report this information to script authors and users so they can know if they need to update something in the near future. I also found that moving some errors from eval to compile time meant some error tests can fail (in `tests/repl`) so this is a good idea to keep those passing. # User-Facing Changes - Report parse warnings when running script files - Report compile errors when running script files
This commit is contained in:
parent
c5aa15c7f6
commit
ae40d56fc5
1 changed files with 9 additions and 0 deletions
|
@ -76,12 +76,21 @@ pub fn evaluate_file(
|
|||
trace!("parsing file: {}", file_path_str);
|
||||
let block = parse(&mut working_set, Some(file_path_str), &file, false);
|
||||
|
||||
if let Some(warning) = working_set.parse_warnings.first() {
|
||||
report_error(&working_set, warning);
|
||||
}
|
||||
|
||||
// If any parse errors were found, report the first error and exit.
|
||||
if let Some(err) = working_set.parse_errors.first() {
|
||||
report_error(&working_set, err);
|
||||
std::process::exit(1);
|
||||
}
|
||||
|
||||
if let Some(err) = working_set.compile_errors.first() {
|
||||
report_error(&working_set, err);
|
||||
// Not a fatal error, for now
|
||||
}
|
||||
|
||||
// Look for blocks whose name starts with "main" and replace it with the filename.
|
||||
for block in working_set.delta.blocks.iter_mut().map(Arc::make_mut) {
|
||||
if block.signature.name == "main" {
|
||||
|
|
Loading…
Reference in a new issue