Skip to content

Commit

Permalink
Suppress useless-super-delegation if return type changed (#5822)
Browse files Browse the repository at this point in the history
  • Loading branch information
timmartin committed Apr 14, 2022
1 parent 2e0a4e7 commit 8f50421
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
8 changes: 8 additions & 0 deletions pylint/checkers/classes/class_checker.py
Expand Up @@ -1298,6 +1298,14 @@ def form_annotations(arguments):
if called_annotations != overridden_annotations:
return

if (
function.returns is not None and
meth_node.returns is None
or meth_node.returns.as_string() != function.returns.as_string()
):
# Override adds typing information to the return type
return

if _definition_equivalent_to_call(params, args):
self.add_message(
"useless-super-delegation", node=function, args=(function.name,)
Expand Down
34 changes: 34 additions & 0 deletions tests/functional/u/useless/useless_super_delegation_py35.py
Expand Up @@ -10,3 +10,37 @@ class UselessSuper(object):

def useless(self, first, *, second=None, **kwargs): # [useless-super-delegation]
return super().useless(first, second=second, **kwargs)

# pylint: disable=wrong-import-position
import random
from typing import Any

class ReturnTypeAny:
choices = ['a', 1, (2, 3)]

def draw(self) -> Any:
return random.choice(self.choices)

class ReturnTypeNarrowed(ReturnTypeAny):
choices = [1, 2, 3]

def draw(self) -> int:
return super().draw()

class NoReturnType:
choices = ['a', 1, (2, 3)]

def draw(self):
return random.choice(self.choices)

class ReturnTypeSpecified(NoReturnType):
choices = ['a', 'b']

def draw(self) -> str:
return super().draw()

class ReturnTypeSame(ReturnTypeAny):
choices = ['a', 'b']

def draw(self) -> Any: # [useless-super-delegation]
return super().draw()
@@ -1 +1,2 @@
useless-super-delegation:11:4:11:15:UselessSuper.useless:Useless super delegation in method 'useless':UNDEFINED
useless-super-delegation:45:4:45:12:ReturnTypeSame.draw:Useless super delegation in method 'draw':UNDEFINED

0 comments on commit 8f50421

Please sign in to comment.