diff options
author | sylvain thenault <sylvain.thenault@logilab.fr> | 2009-03-23 12:04:01 +0100 |
---|---|---|
committer | sylvain thenault <sylvain.thenault@logilab.fr> | 2009-03-23 12:04:01 +0100 |
commit | e06c78824b5c161c0b12c388ae077c612d5495bf (patch) | |
tree | 9c4b367c96cb91b6d8a5b64d7bf803249901a6b4 /checkers/utils.py | |
parent | ce22e4bd89050437a60f38d61c831a0b1fc5ebeb (diff) | |
download | pylint-e06c78824b5c161c0b12c388ae077c612d5495bf.tar.gz |
fix #8687, W0613 false positive on inner function
Diffstat (limited to 'checkers/utils.py')
-rw-r--r-- | checkers/utils.py | 25 |
1 files changed, 8 insertions, 17 deletions
diff --git a/checkers/utils.py b/checkers/utils.py index 41b09e3..321ecb8 100644 --- a/checkers/utils.py +++ b/checkers/utils.py @@ -122,26 +122,17 @@ def is_defined_before(var_node, comp_node_types=COMP_NODE_TYPES): _node = _node.previous_sibling() return False -def is_func_default(node, name=None): - """return true if the name is used in function default argument's value +def is_func_default(node): + """return true if the given Name node is used in function default argument's + value """ - if name == None: - name = node.name parent = node.parent - if parent is None: - return 0 if isinstance(parent, astng.Function): - defaults = parent.args.defaults - if name in _child_names(defaults): - return 1 - return is_func_default(parent, name) - -def _child_names(nodes): - """return a list of all Name in a list 'nodes' """ - names = [] - for node in nodes: - names.extend(n.name for n in node.nodes_of_class(astng.Name)) - return names + for default_node in parent.args.defaults: + for default_name_node in default_node.nodes_of_class(astng.Name): + if default_name_node is node: + return True + return False def is_func_decorator(node): """return true if the name is used in function decorator |