New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
use to_lowercase
in str downcase
#10850
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is technically a breaking change, but aren't all bug fixes breaking changes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tell me muse, of the deeds of the Unicode which travelled to many scripts after the destruction of
U+FFFD
ὀδυσσεύς
i would say every fix is a |
let's go with this then 🙏 |
# Description as we can see in the [documentation of `str.to_lowercase`](https://doc.rust-lang.org/std/primitive.str.html#method.to_lowercase), not only ASCII symbols have lower and upper variants. - `str upcase` uses the correct method to convert the string https://github.com/nushell/nushell/blob/7ac5a01e2f5020a1295697edab727cd62a5844b7/crates/nu-command/src/strings/str_/case/upcase.rs#L93 - `str downcase` incorrectly converts only ASCII characters https://github.com/nushell/nushell/blob/7ac5a01e2f5020a1295697edab727cd62a5844b7/crates/nu-command/src/strings/str_/case/downcase.rs#L124 this PR uses `str.to_lower_case` instead of `str.to_ascii_lowercase` in `str downcase`. # User-Facing Changes - upcase still works fine ```nushell ~ l> "ὀδυσσεύς" | str upcase ὈΔΥΣΣΕΎΣ ``` - downcase now works :point_right: before ```nushell ~ l> "ὈΔΥΣΣΕΎΣ" | str downcase ὈΔΥΣΣΕΎΣ ``` :point_right: after ```nushell ~ l> "ὈΔΥΣΣΕΎΣ" | str downcase ὀδυσσεύς ``` # Tests + Formatting - :green_circle: `toolkit fmt` - :green_circle: `toolkit clippy` - :black_circle: `toolkit test` - :black_circle: `toolkit test stdlib` adds two tests - `non_ascii_upcase` - `non_ascii_downcase` # After Submitting
# Description as we can see in the [documentation of `str.to_lowercase`](https://doc.rust-lang.org/std/primitive.str.html#method.to_lowercase), not only ASCII symbols have lower and upper variants. - `str upcase` uses the correct method to convert the string https://github.com/nushell/nushell/blob/7ac5a01e2f5020a1295697edab727cd62a5844b7/crates/nu-command/src/strings/str_/case/upcase.rs#L93 - `str downcase` incorrectly converts only ASCII characters https://github.com/nushell/nushell/blob/7ac5a01e2f5020a1295697edab727cd62a5844b7/crates/nu-command/src/strings/str_/case/downcase.rs#L124 this PR uses `str.to_lower_case` instead of `str.to_ascii_lowercase` in `str downcase`. # User-Facing Changes - upcase still works fine ```nushell ~ l> "ὀδυσσεύς" | str upcase ὈΔΥΣΣΕΎΣ ``` - downcase now works :point_right: before ```nushell ~ l> "ὈΔΥΣΣΕΎΣ" | str downcase ὈΔΥΣΣΕΎΣ ``` :point_right: after ```nushell ~ l> "ὈΔΥΣΣΕΎΣ" | str downcase ὀδυσσεύς ``` # Tests + Formatting - :green_circle: `toolkit fmt` - :green_circle: `toolkit clippy` - :black_circle: `toolkit test` - :black_circle: `toolkit test stdlib` adds two tests - `non_ascii_upcase` - `non_ascii_downcase` # After Submitting
Description
as we can see in the documentation of
str.to_lowercase
, not only ASCII symbols have lower and upper variants.str upcase
uses the correct method to convert the stringnushell/crates/nu-command/src/strings/str_/case/upcase.rs
Line 93 in 7ac5a01
str downcase
incorrectly converts only ASCII charactersnushell/crates/nu-command/src/strings/str_/case/downcase.rs
Line 124 in 7ac5a01
this PR uses
str.to_lower_case
instead ofstr.to_ascii_lowercase
instr downcase
.User-Facing Changes
👉 before
👉 after
Tests + Formatting
toolkit fmt
toolkit clippy
toolkit test
toolkit test stdlib
adds two tests
non_ascii_upcase
non_ascii_downcase
After Submitting