MCPcopy Create free account
hub / github.com/astral-sh/ruff / duplicate_parameter_name

Method duplicate_parameter_name

crates/ruff_python_parser/src/semantic_errors.rs:746–770  ·  view source on GitHub ↗
(
        parameters: &ast::Parameters,
        ctx: &Ctx,
    )

Source from the content-addressed store, hash-verified

744 }
745
746 fn duplicate_parameter_name<Ctx: SemanticSyntaxContext>(
747 parameters: &ast::Parameters,
748 ctx: &Ctx,
749 ) {
750 if parameters.len() < 2 {
751 return;
752 }
753
754 let mut all_arg_names =
755 FxHashSet::with_capacity_and_hasher(parameters.len(), FxBuildHasher);
756
757 for parameter in parameters {
758 let range = parameter.name().range();
759 let param_name = parameter.name().as_str();
760 if !all_arg_names.insert(param_name) {
761 // test_err params_duplicate_names
762 // def foo(a, a=10, *a, a, a: str, **a): ...
763 Self::add_error(
764 ctx,
765 SemanticSyntaxErrorKind::DuplicateParameter(param_name.to_string()),
766 range,
767 );
768 }
769 }
770 }
771
772 fn irrefutable_match_case<Ctx: SemanticSyntaxContext>(stmt: &ast::StmtMatch, ctx: &Ctx) {
773 // test_ok irrefutable_case_pattern_at_end

Callers

nothing calls this directly

Calls 6

lenMethod · 0.45
rangeMethod · 0.45
nameMethod · 0.45
as_strMethod · 0.45
insertMethod · 0.45
to_stringMethod · 0.45

Tested by

no test coverage detected