mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 06:30:08 +02:00
Remove python-like string multiplication (#10293)
# Description Currently we support "multiplication" of strings, resulting in a terse way to repeat a particular string. This can have unintended side effects when dealing with mixed data (e.g. after parsing data that is not all numbers). Furthermore as we frequently fall-back to strings while parsing source code, this introduced a runaway edge case in const evaluation (#10212) Work for #10233 ## Details - Remove python-like string multiplication. - Workaround for indentation - This should probably be addressed with a purpose built command - Remove special const-eval error test # User-Facing Changes **Major breaking change!** `"string" * 42` will stop working. (This was used for example in the stdlib) We should bless a good alternative before landing this --------- Co-authored-by: JT <547158+jntrnr@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
a14e9e0a2e
commit
7f39609d9a
@ -498,11 +498,3 @@ fn append_binary_values() {
|
||||
));
|
||||
assert_eq!(actual.out, "0x[01020304]");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn int_multiple_string() {
|
||||
let actual = nu!(pipeline(r#"3 * "ab""#));
|
||||
assert_eq!(actual.out, "ababab");
|
||||
let actual = nu!(pipeline(r#""ab" * 3"#));
|
||||
assert_eq!(actual.out, "ababab");
|
||||
}
|
||||
|
@ -214,14 +214,16 @@ mod regex {
|
||||
|
||||
#[test]
|
||||
fn parse_handles_external_stream_chunking() {
|
||||
Playground::setup("parse_test_streaming_1", |dirs, _sandbox| {
|
||||
Playground::setup("parse_test_streaming_1", |dirs, sandbox| {
|
||||
let data: String = std::iter::repeat("abcdefghijklmnopqrstuvwxyz")
|
||||
.take(1000)
|
||||
.collect();
|
||||
sandbox.with_files(vec![Stub::FileWithContent("data.txt", &data)]);
|
||||
|
||||
let actual = nu!(
|
||||
cwd: dirs.test(), pipeline(
|
||||
r#"
|
||||
"abcdefghijklmnopqrstuvwxyz" * 1000 | save --force data.txt;
|
||||
open data.txt | parse --regex "(abcdefghijklmnopqrstuvwxyz)" | length
|
||||
"#
|
||||
));
|
||||
cwd: dirs.test(),
|
||||
r#"open data.txt | parse --regex "(abcdefghijklmnopqrstuvwxyz)" | length"#
|
||||
);
|
||||
|
||||
assert_eq!(actual.out, "1000");
|
||||
})
|
||||
|
Reference in New Issue
Block a user