Skip to content

Commit 4a45b6f

Browse files
Harden fix
1 parent 85b771b commit 4a45b6f

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

Tools/clinic/clinic.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4710,9 +4710,13 @@ def bad_node(self, node):
47104710

47114711
p = Parameter(parameter_name, kind, function=self.function, converter=converter, default=value, group=self.group)
47124712

4713-
if (c_name or parameter_name) in self.function.parameters:
4713+
names = [k.name for k in self.function.parameters.values()]
4714+
key = f"{parameter_name}_{c_name}" if c_name else parameter_name
4715+
if parameter_name in names[1:]:
47144716
fail("You can't have two parameters named " + repr(parameter_name) + "!")
4715-
self.function.parameters[c_name or parameter_name] = p
4717+
elif names and parameter_name == names[0] and c_name is None:
4718+
fail("Params named 'module' or 'self' need custom C names")
4719+
self.function.parameters[key] = p
47164720

47174721
def parse_converter(self, annotation):
47184722
if (hasattr(ast, 'Constant') and

0 commit comments

Comments
 (0)