Fix incorrect type inference for super() calls returning Self
Previously, astroid would infer the parent class type instead of the
child class type when super().method() was called, causing pylint E1101
false positives in method chaining scenarios.
This commit adds an optional 'original_caller' parameter to BoundMethod
to track the actual caller (child instance) separate from the bound
class (parent class from MRO). When inferring call results, we now use
original_caller for context binding to correctly resolve Self return types.
This fix applies to both instance methods and classmethods.
Closes #457
4 files changed