Skip to content

False positive with useless-super-delegation for keyword args with dict defaults #3773

Closed
@filip-zyzniewski

Description

@filip-zyzniewski

Problem similar to #2022 .

Steps to reproduce

(I know, mutable default is a bad idea)

# uselesssuper.py
class MyBase:
    def method(self, *, arg={}):
        self.x = arg

class MyChild(MyBase):
    def method(self, *, arg={'foo': 'bar'}):
        super().method(arg=arg)

myobj = MyChild()
myobj.method()
print(myobj.x)

Current behavior

$ python3 uselesssuperdict.py 
{'foo': 'bar'}
$ pylint uselesssuperdict.py --disable=all --enable=useless-super-delegation
************* Module uselesssuperdict
uselesssuperdict.py:7:4: W0235: Useless super delegation in method 'method' (useless-super-delegation)

------------------------------------------------------------------
Your code has been rated at 8.89/10 (previous run: 8.89/10, +0.00)

$ 

Expected behavior

No issue

pylint --version output

$ pylint --version
pylint 2.5.3
astroid 2.4.2
Python 3.8.5 (default, Jul 21 2020, 10:42:08) 
[Clang 11.0.0 (clang-1100.0.33.17)]
$

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions