fixed new crash caused by recent refactor

This commit is contained in:
2026-02-24 14:18:15 -05:00
parent 0fc283e966
commit 49c6d688b6
2 changed files with 7 additions and 8 deletions

View File

@@ -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);

View File

@@ -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 {