This rule raises an issue when a function is called with multiple values for the same parameter. == Why is this an issue? When a function is called, it accepts only one value per parameter. The Python interpreter will raise a `SyntaxError` when the same parameter is provided more than once, i.e. `myfunction(a=1, a=2)`. Other less obvious cases will also fail at runtime by raising a `TypeError`, when: * An argument is provided by value and position at the same time. * An argument is provided twice, once via unpacking and once by value or position. === Code examples ==== Noncompliant code example [source,python,diff-id=1,diff-type=noncompliant] ---- def func(a, b, c): return a * b * c func(6, 93, 31, c=62) # Noncompliant: argument "c" is duplicated params = {'c':31} func(6, 93, 31, **params) # Noncompliant: argument "c" is duplicated func(6, 93, c=62, **params) # Noncompliant: argument "c" is duplicated ---- ==== Compliant solution [source,python,diff-id=1,diff-type=compliant] ---- def func(a, b, c): return a * b * c func(c=31, b=93, a=6) # Compliant params = {'c':31} func(6, 93, **params) # Compliant ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) === Message {xxx} argument is duplicated in {function} call === Highlighting Primary: the first appearance of duplicated argument Secondary: * location: the others argument duplicated ** message: argument also passed here * location: the signature of the called function * message: function definition ''' == Comments And Links (visible only on this page) === on 23 Apr 2020, 17:28:22 Nicolas Harraudeau wrote: The following use case was removed because it is a syntax error and we don't want to target those: ---- func(c=31, b=93, c=62) ---- endif::env-github,rspecator-view[]