diff options
author | Claudiu Popa <cpopa@cloudbasesolutions.com> | 2014-11-28 21:30:45 +0200 |
---|---|---|
committer | Claudiu Popa <cpopa@cloudbasesolutions.com> | 2014-11-28 21:30:45 +0200 |
commit | 5e8bbdb6698a8e005c579621611b40a6f486d118 (patch) | |
tree | 6294719a657dce6e1e3c87bc0347d30eb7f53af8 | |
parent | 1d9fcaeb6e1bb530c10307015b2a34c3c218dd30 (diff) | |
download | pylint-5e8bbdb6698a8e005c579621611b40a6f486d118.tar.gz |
Make dangerous-default-argument check resilient to inferred builtin calls for list/tuple/set.
-rw-r--r-- | checkers/base.py | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/checkers/base.py b/checkers/base.py index 8198d16..604685a 100644 --- a/checkers/base.py +++ b/checkers/base.py @@ -685,9 +685,12 @@ functions, methods if (isinstance(value, astroid.Instance) and value.qname() in DEFAULT_ARGUMENT_SYMBOLS): + is_infered_builtin = isinstance( + value, + (astroid.List, astroid.Tuple, astroid.Set)) if value is default: msg = DEFAULT_ARGUMENT_SYMBOLS[value.qname()] - elif type(value) is astroid.Instance: + elif type(value) is astroid.Instance or is_infered_builtin: if isinstance(default, astroid.CallFunc): # this argument is direct call to list() or dict() etc msg = '%s() (%s)' % (value.name, value.qname()) |