Skip to content

Commit 2c09785

Browse files
committed
add arg_name in duplicate argument error msg
1 parent 0e66e14 commit 2c09785

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

compiler/parser/src/error.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pub enum LexicalErrorType {
2121
TabError,
2222
TabsAfterSpaces,
2323
DefaultArgumentError,
24-
DuplicateArgumentError,
24+
DuplicateArgumentError(String),
2525
PositionalArgumentError,
2626
UnpackedArgumentError,
2727
DuplicateKeywordArgumentError,
@@ -51,8 +51,8 @@ impl fmt::Display for LexicalErrorType {
5151
LexicalErrorType::DefaultArgumentError => {
5252
write!(f, "non-default argument follows default argument")
5353
}
54-
LexicalErrorType::DuplicateArgumentError => {
55-
write!(f, "duplicate argument in function definition")
54+
LexicalErrorType::DuplicateArgumentError(arg_name) => {
55+
write!(f, "duplicate argument '{arg_name}' in function definition")
5656
}
5757
LexicalErrorType::DuplicateKeywordArgumentError => {
5858
write!(f, "keyword argument repeated")

compiler/parser/src/function.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,16 @@ pub fn validate_arguments(
3131
let mut all_arg_names =
3232
FxHashSet::with_hasher(Default::default());
3333
for arg in all_args {
34-
let arg_name = arg.node.arg.clone();
34+
let arg_name = &arg.node.arg;
3535
if !all_arg_names.insert(arg_name) {
3636
return Err(LexicalError {
37-
error: LexicalErrorType::DuplicateArgumentError,
37+
error: LexicalErrorType::DuplicateArgumentError(arg_name.to_string()),
3838
location: arg.location,
3939
});
4040
}
4141
}
4242

43-
return Ok(arguments);
43+
Ok(arguments)
4444
}
4545

4646
pub fn parse_params(

0 commit comments

Comments
 (0)