diff --git a/crates/nu-cli/src/commands/classified/block.rs b/crates/nu-cli/src/commands/classified/block.rs index 5a1620a1da..999b7fdfc7 100644 --- a/crates/nu-cli/src/commands/classified/block.rs +++ b/crates/nu-cli/src/commands/classified/block.rs @@ -70,27 +70,21 @@ async fn run_pipeline( vars: &IndexMap, env: &IndexMap, ) -> Result { - let mut iter = commands.list.clone().into_iter().peekable(); - loop { - let item: Option = iter.next(); - let next: Option<&ClassifiedCommand> = iter.peek(); - - input = match (item, next) { - (Some(ClassifiedCommand::Dynamic(_)), _) | (_, Some(ClassifiedCommand::Dynamic(_))) => { + for item in commands.list.clone() { + input = match item { + ClassifiedCommand::Dynamic(_) => { return Err(ShellError::unimplemented("Dynamic commands")) } - (Some(ClassifiedCommand::Expr(expr)), _) => { + ClassifiedCommand::Expr(expr) => { run_expression_block(*expr, ctx, it, vars, env).await? } - (Some(ClassifiedCommand::Error(err)), _) => return Err(err.into()), - (_, Some(ClassifiedCommand::Error(err))) => return Err(err.clone().into()), - (Some(ClassifiedCommand::Internal(left)), _) => { + ClassifiedCommand::Error(err) => return Err(err.into()), + + ClassifiedCommand::Internal(left) => { run_internal_command(left, ctx, input, it, vars, env).await? } - - (None, _) => break, }; }