diff options
author | Torsten Marek <tmarek@google.com> | 2013-06-19 11:41:55 +0200 |
---|---|---|
committer | Torsten Marek <tmarek@google.com> | 2013-06-19 11:41:55 +0200 |
commit | dd08b36c985aae33bf3149ec253758cbc45fa3a7 (patch) | |
tree | 708cd44e53e44cfc86c2bebe7f7d4cf7c030acc2 /utils.py | |
parent | d15faca6172efda9baf1ad0df30f0031f1b02803 (diff) | |
download | pylint-dd08b36c985aae33bf3149ec253758cbc45fa3a7.tar.gz |
Refactor PyLintASTWalker to allow using symbolic names in check_messages as well.
Diffstat (limited to 'utils.py')
-rw-r--r-- | utils.py | 18 |
1 files changed, 12 insertions, 6 deletions
@@ -595,6 +595,15 @@ class PyLintASTWalker(object): self.leave_events = {} self.linter = linter + def _is_method_enabled(self, method): + if not hasattr(method, 'checks_msgs'): + return True + + for msg_desc in method.checks_msgs: + if self.linter.is_message_enabled(msg_desc): + return True + return False + def add_checker(self, checker): """walk to the checker's dir and collect visit and leave methods""" # XXX : should be possible to merge needed_checkers and add_checker @@ -602,7 +611,6 @@ class PyLintASTWalker(object): lcids = set() visits = self.visit_events leaves = self.leave_events - msgs = self.linter._msgs_state for member in dir(checker): cid = member[6:] if cid == 'default': @@ -610,11 +618,9 @@ class PyLintASTWalker(object): if member.startswith('visit_'): v_meth = getattr(checker, member) # don't use visit_methods with no activated message: - if hasattr(v_meth, 'checks_msgs'): - if not any(msgs.get(m, True) for m in v_meth.checks_msgs): - continue - visits.setdefault(cid, []).append(v_meth) - vcids.add(cid) + if self._is_method_enabled(v_meth): + visits.setdefault(cid, []).append(v_meth) + vcids.add(cid) elif member.startswith('leave_'): l_meth = getattr(checker, member) # don't use leave_methods with no activated message: |