From 4f2ae34df905300f9ed451ded4fef8f357e7240d Mon Sep 17 00:00:00 2001 From: Leonhard Kipp Date: Wed, 13 Jan 2021 02:44:55 +0100 Subject: [PATCH] Don't throw err on typename as parameter name (#2926) Before this was an error: `def e [path:path] {echo $path}` Now its not. --- .../src/parse/def/param_flag_list.rs | 32 ++++--------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/crates/nu-parser/src/parse/def/param_flag_list.rs b/crates/nu-parser/src/parse/def/param_flag_list.rs index 8eea0ead0d..1e9a151339 100644 --- a/crates/nu-parser/src/parse/def/param_flag_list.rs +++ b/crates/nu-parser/src/parse/def/param_flag_list.rs @@ -200,35 +200,17 @@ fn parse_type_token(type_: &Token) -> (SyntaxShape, Option) { } fn parse_param_name(token: &Token) -> (Spanned, Option) { - match &token.contents { - TokenContents::Baseline(name) => { - //Make sure user didn't enter type - //REVIEW Should type names be allowed to be parameter names: - //Example case: - //def f [ string ] { echo $string } - //Currently an error is thrown - let name = name.clone().spanned(token.span); - let (_, err) = parse_type(&name); - if err.is_some() { - //Okay not a type. Just return name - (name, None) - } else { - ( - name, - Some(ParseError::mismatch( - "parameter name", - token_to_spanned_string(token), - )), - ) - } - } - _ => ( - "Internal Error".to_string().spanned(token.span), + if let TokenContents::Baseline(name) = &token.contents { + let name = name.clone().spanned(token.span); + (name, None) + } else { + ( + "InternalError".to_string().spanned(token.span), Some(ParseError::mismatch( "parameter name", token_to_spanned_string(token), )), - ), + ) } }