From 734877338dece69a313fb0f99add1cc8d45024ae Mon Sep 17 00:00:00 2001 From: Jonathan Turner Date: Sun, 11 Apr 2021 18:29:01 +1200 Subject: [PATCH] Remove take_while from internal iterator (#3301) --- crates/nu-engine/src/evaluate/internal.rs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/crates/nu-engine/src/evaluate/internal.rs b/crates/nu-engine/src/evaluate/internal.rs index 8b83f3efc0..66ff7c9d49 100644 --- a/crates/nu-engine/src/evaluate/internal.rs +++ b/crates/nu-engine/src/evaluate/internal.rs @@ -33,15 +33,12 @@ pub(crate) fn run_internal_command( )? }; - Ok(InputStream::from_stream( - InternalIterator { - command, - context: context.clone(), - leftovers: vec![], - input: result, - } - .take_while(|x| !x.is_error()), - )) + Ok(InputStream::from_stream(InternalIterator { + command, + context: context.clone(), + leftovers: vec![], + input: result, + })) } struct InternalIterator { @@ -73,6 +70,7 @@ impl Iterator for InternalIterator { CommandAction::Exit(code) => std::process::exit(code), // TODO: save history.txt CommandAction::Error(err) => { self.context.error(err); + return None; } CommandAction::AutoConvert(tagged_contents, extension) => { let contents_tag = tagged_contents.tag.clone(); @@ -205,6 +203,7 @@ impl Iterator for InternalIterator { .. })) => { self.context.error(err); + return None; } Ok(ReturnSuccess::Value(v)) => return Some(v),