mirror of
https://github.com/nushell/nushell
synced 2024-12-26 13:03:07 +00:00
Fix a panic when parsing empty file (#11314)
The previous implementation presumed that if files were given, they had contents. The change makes the fallback to permanent files uniform. Fix #11256
This commit is contained in:
parent
3633772d52
commit
fb7f6fc08b
2 changed files with 15 additions and 5 deletions
|
@ -355,11 +355,10 @@ impl<'a> StateWorkingSet<'a> {
|
|||
return &contents[begin..end];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return self.permanent_state.get_span_contents(span);
|
||||
}
|
||||
|
||||
panic!("internal error: missing span contents in file cache")
|
||||
// if no files with span were found, fall back on permanent ones
|
||||
return self.permanent_state.get_span_contents(span);
|
||||
}
|
||||
|
||||
pub fn enter_scope(&mut self) {
|
||||
|
|
|
@ -297,7 +297,7 @@ fn main_script_can_have_subcommands1() {
|
|||
r#"def "main foo" [x: int] {
|
||||
print ($x + 100)
|
||||
}
|
||||
|
||||
|
||||
def "main" [] {
|
||||
print "usage: script.nu <command name>"
|
||||
}"#,
|
||||
|
@ -318,7 +318,7 @@ fn main_script_can_have_subcommands2() {
|
|||
r#"def "main foo" [x: int] {
|
||||
print ($x + 100)
|
||||
}
|
||||
|
||||
|
||||
def "main" [] {
|
||||
print "usage: script.nu <command name>"
|
||||
}"#,
|
||||
|
@ -329,3 +329,14 @@ fn main_script_can_have_subcommands2() {
|
|||
assert!(actual.out.contains("usage: script.nu"));
|
||||
})
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn source_empty_file() {
|
||||
Playground::setup("source_empty_file", |dirs, sandbox| {
|
||||
sandbox.mkdir("source_empty_file");
|
||||
sandbox.with_files(vec![FileWithContent("empty.nu", "")]);
|
||||
|
||||
let actual = nu!(cwd: dirs.test(), pipeline("nu empty.nu"));
|
||||
assert!(actual.out.is_empty());
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue