From a2705f9eb57f7808e31e493d6c9cfd147afed4f5 Mon Sep 17 00:00:00 2001 From: Renan Ribeiro <55855728+cosineblast@users.noreply.github.com> Date: Mon, 27 Jan 2025 20:23:44 -0300 Subject: [PATCH] Fix reject regression (#14931) This PR solves the regression introduced by #14622 (sorry about that). It also adds a test to cover the regression. Closes #14929. --- crates/nu-command/src/filters/reject.rs | 8 +++++++- crates/nu-command/tests/commands/reject.rs | 7 +++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/crates/nu-command/src/filters/reject.rs b/crates/nu-command/src/filters/reject.rs index e15c6b65e4..b728ca828e 100644 --- a/crates/nu-command/src/filters/reject.rs +++ b/crates/nu-command/src/filters/reject.rs @@ -220,8 +220,14 @@ fn reject( new_columns.append(&mut new_rows); + let has_integer_path_member = new_columns.iter().any(|path| { + path.members + .iter() + .any(|member| matches!(member, PathMember::Int { .. })) + }); + match input { - PipelineData::ListStream(stream, ..) => { + PipelineData::ListStream(stream, ..) if !has_integer_path_member => { let result = stream .into_iter() .map(move |mut value| { diff --git a/crates/nu-command/tests/commands/reject.rs b/crates/nu-command/tests/commands/reject.rs index a2c052b3e1..47c5e86452 100644 --- a/crates/nu-command/tests/commands/reject.rs +++ b/crates/nu-command/tests/commands/reject.rs @@ -178,3 +178,10 @@ fn test_ignore_errors_flag_var() { nu!("let arg = [5 c]; [[a, b]; [1, 2], [3, 4], [5, 6]] | reject ...$arg -i | to nuon"); assert_eq!(actual.out, "[[a, b]; [1, 2], [3, 4], [5, 6]]"); } + +#[test] +fn test_works_with_integer_path_and_stream() { + let actual = nu!("[[N u s h e l l]] | flatten | reject 1 | to nuon"); + + assert_eq!(actual.out, "[N, s, h, e, l, l]"); +}