mirror of
https://github.com/nushell/nushell.git
synced 2025-05-28 10:31:23 +00:00
# Description Fix for #7933. I've read through code and found the obvious difference between them, where `each` command calls eval_with_early_returne89e734ca2/crates/nu-command/src/filters/each.rs (L158)
, while `reduce` command uses eval_blocke89e734ca2/crates/nu-command/src/filters/reduce.rs (L143)
That simple change seems to resolve the problem. # User-Facing Changes Allows the use of `return` in reduce closures, as per example in #7933 description. Arguably it's restoring consistency, than changing user interface. ``` [1, 2] | reduce --fold null { |it, state| ::: if $it == 1 { ::: return 10 ::: } ::: return ($it * $state) ::: } 20 ``` # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - [x] `cargo fmt --all -- --check` to check standard code formatting (cargo fmt --all applies these changes) - [x] `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - [x] `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date.
Nushell core libraries and plugins
These sub-crates form both the foundation for Nu and a set of plugins which extend Nu with additional functionality.
Foundational libraries are split into two kinds of crates:
- Core crates - those crates that work together to build the Nushell language engine
- Support crates - a set of crates that support the engine with additional features like JSON support, ANSI support, and more.
Plugins are likewise also split into two types:
- Core plugins - plugins that provide part of the default experience of Nu, including access to the system properties, processes, and web-connectivity features.
- Extra plugins - these plugins run a wide range of different capabilities like working with different file types, charting, viewing binary data, and more.