diff --git a/crates/nu-command/tests/commands/alias.rs b/crates/nu-command/tests/commands/alias.rs index 65fbbc1d4f..0972607c69 100644 --- a/crates/nu-command/tests/commands/alias.rs +++ b/crates/nu-command/tests/commands/alias.rs @@ -137,6 +137,12 @@ fn alias_match() { assert_eq!(actual.out, "yes!"); } +#[test] +fn alias_parenthesis_enclosed() { + let actual = nu!(r#" alias spam = (match 3 { 1..10 => 'yes!' }); spam "#); + assert_eq!(actual.out, "yes!"); +} + // Issue https://github.com/nushell/nushell/issues/8103 #[test] fn alias_multiword_name() { diff --git a/crates/nu-parser/src/parse_keywords.rs b/crates/nu-parser/src/parse_keywords.rs index 4e84740986..5faaf9f0a1 100644 --- a/crates/nu-parser/src/parse_keywords.rs +++ b/crates/nu-parser/src/parse_keywords.rs @@ -931,9 +931,11 @@ pub fn parse_alias( let replacement_spans = &spans[(split_id + 2)..]; let first_bytes = working_set.get_span_contents(replacement_spans[0]); + let b = first_bytes[0]; if first_bytes != b"if" && first_bytes != b"match" + && b != b'(' && is_math_expression_like(working_set, replacement_spans[0]) { // TODO: Maybe we need to implement a Display trait for Expression?