Skip to content

ALL-OVER0002 · overriding_method_renames_a_parameter

Count the positions an overriding method binds under a name the base never used.

This is a deterministic rule for all languages. Read its implementation.

Read every member a base declares beside the declaration the subclass writes for it, and report each position that still lines up while the name on it changed. Every ordinary parameter of a Python method is also a keyword, so a rename silently deletes part of the interface. A caller written against the base passes path= and gets a type error naming an argument it never used, and the reader who has to fix it starts at the call rather than at the class that moved the name.

A reordering is the same defect twice over and is counted that way. Swapping two parameters renames both positions, every keyword call keeps working, every positional call keeps running, and each one now binds the wrong value to the right name. Documentation is the other cost, because two names for one thing means two mental models of one thing.

Continue with evidence and references, or open the examples.