From 5e8bbdb6698a8e005c579621611b40a6f486d118 Mon Sep 17 00:00:00 2001 From: Claudiu Popa Date: Fri, 28 Nov 2014 21:30:45 +0200 Subject: Make dangerous-default-argument check resilient to inferred builtin calls for list/tuple/set. --- checkers/base.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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()) -- cgit v1.2.1