Skip to content

Commit

Permalink
Fix dangerous-default-value false negative when * is used. (#7856)
Browse files Browse the repository at this point in the history
  • Loading branch information
clavedeluna committed Nov 27, 2022
1 parent b950567 commit 7618b7e
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 1 deletion.
3 changes: 3 additions & 0 deletions doc/whatsnew/fragments/7818.false_negative
@@ -0,0 +1,3 @@
Fix ``dangerous-default-value`` false negative when `*` is used.

Closes #7818
2 changes: 1 addition & 1 deletion pylint/checkers/base/basic_checker.py
Expand Up @@ -572,7 +572,7 @@ def _check_dangerous_default(self, node: nodes.FunctionDef) -> None:
def is_iterable(internal_node: nodes.NodeNG) -> bool:
return isinstance(internal_node, (nodes.List, nodes.Set, nodes.Dict))

defaults = node.args.defaults or [] + node.args.kw_defaults or []
defaults = (node.args.defaults or []) + (node.args.kw_defaults or [])
for default in defaults:
if not default:
continue
Expand Down
11 changes: 11 additions & 0 deletions tests/functional/d/dangerous_default_value.py
Expand Up @@ -109,3 +109,14 @@ def function23(value=collections.UserList()): # [dangerous-default-value]
def function24(*, value=[]): # [dangerous-default-value]
"""dangerous default value in kwarg."""
return value


class Clazz:
# pylint: disable=too-few-public-methods
def __init__( # [dangerous-default-value]
self,
arg: str = None,
*,
kk: dict = {},
) -> None:
pass
1 change: 1 addition & 0 deletions tests/functional/d/dangerous_default_value.txt
Expand Up @@ -20,3 +20,4 @@ dangerous-default-value:97:0:97:14:function21:Dangerous default value defaultdic
dangerous-default-value:101:0:101:14:function22:Dangerous default value UserDict() (collections.UserDict) as argument:UNDEFINED
dangerous-default-value:105:0:105:14:function23:Dangerous default value UserList() (collections.UserList) as argument:UNDEFINED
dangerous-default-value:109:0:109:14:function24:Dangerous default value [] as argument:UNDEFINED
dangerous-default-value:116:4:116:16:Clazz.__init__:Dangerous default value {} as argument:UNDEFINED

0 comments on commit 7618b7e

Please sign in to comment.