arg name to be written upon duplicate kwargs error #4381

This commit is contained in:
Anil Tuncel 2022-12-29 22:06:21 +01:00
parent 200390c1ab
commit 80116c768d
2 changed files with 4 additions and 4 deletions

View file

@ -24,7 +24,7 @@ pub enum LexicalErrorType {
DuplicateArgumentError(String), DuplicateArgumentError(String),
PositionalArgumentError, PositionalArgumentError,
UnpackedArgumentError, UnpackedArgumentError,
DuplicateKeywordArgumentError, DuplicateKeywordArgumentError(String),
UnrecognizedToken { tok: char }, UnrecognizedToken { tok: char },
FStringError(FStringErrorType), FStringError(FStringErrorType),
LineContinuationError, LineContinuationError,
@ -54,8 +54,8 @@ impl fmt::Display for LexicalErrorType {
LexicalErrorType::DuplicateArgumentError(arg_name) => { LexicalErrorType::DuplicateArgumentError(arg_name) => {
write!(f, "duplicate argument '{arg_name}' in function definition") write!(f, "duplicate argument '{arg_name}' in function definition")
} }
LexicalErrorType::DuplicateKeywordArgumentError => { LexicalErrorType::DuplicateKeywordArgumentError(arg_name) => {
write!(f, "keyword argument repeated") write!(f, "keyword argument '{arg_name}' repeated")
} }
LexicalErrorType::PositionalArgumentError => { LexicalErrorType::PositionalArgumentError => {
write!(f, "positional argument follows keyword argument") write!(f, "positional argument follows keyword argument")

View file

@ -92,7 +92,7 @@ pub fn parse_args(func_args: Vec<FunctionArgument>) -> Result<ArgumentList, Lexi
if let Some(keyword_name) = &name { if let Some(keyword_name) = &name {
if keyword_names.contains(keyword_name) { if keyword_names.contains(keyword_name) {
return Err(LexicalError { return Err(LexicalError {
error: LexicalErrorType::DuplicateKeywordArgumentError, error: LexicalErrorType::DuplicateKeywordArgumentError(keyword_name.to_string()),
location: start, location: start,
}); });
} }