fixed new crash caused by recent refactor
This commit is contained in:
@@ -681,7 +681,7 @@ impl Dispatcher {
|
|||||||
}
|
}
|
||||||
fn exec_builtin(&mut self, cmd: Node) -> ShResult<()> {
|
fn exec_builtin(&mut self, cmd: Node) -> ShResult<()> {
|
||||||
let fork_builtins = cmd.flags.contains(NdFlags::FORK_BUILTINS);
|
let fork_builtins = cmd.flags.contains(NdFlags::FORK_BUILTINS);
|
||||||
let cmd_raw = cmd.get_command().unwrap().to_string();
|
let cmd_raw = cmd.get_command().unwrap_or_else(|| panic!("expected command NdRule, got {:?}", &cmd.class)).to_string();
|
||||||
|
|
||||||
if fork_builtins {
|
if fork_builtins {
|
||||||
log::trace!("Forking builtin: {}", cmd_raw);
|
log::trace!("Forking builtin: {}", cmd_raw);
|
||||||
|
|||||||
@@ -114,15 +114,14 @@ pub struct Node {
|
|||||||
|
|
||||||
impl Node {
|
impl Node {
|
||||||
pub fn get_command(&self) -> Option<&Tk> {
|
pub fn get_command(&self) -> Option<&Tk> {
|
||||||
let NdRule::Command {
|
if let NdRule::Command {
|
||||||
assignments: _,
|
assignments: _,
|
||||||
argv,
|
argv,
|
||||||
} = &self.class
|
} = &self.class {
|
||||||
else {
|
argv.iter().next()
|
||||||
return None;
|
} else {
|
||||||
};
|
None
|
||||||
let command = argv.iter().find(|tk| tk.flags.contains(TkFlags::IS_CMD))?;
|
}
|
||||||
Some(command)
|
|
||||||
}
|
}
|
||||||
pub fn get_span(&self) -> Span {
|
pub fn get_span(&self) -> Span {
|
||||||
let Some(first_tk) = self.tokens.first() else {
|
let Some(first_tk) = self.tokens.first() else {
|
||||||
|
|||||||
Reference in New Issue
Block a user