def leave_functiondef(self, node):
if node.is_method():<EOL><INDENT>if node.args.args is not None:<EOL><INDENT>self._first_attrs.pop()<EOL><DEDENT>if not self.linter.is_message_enabled("<STR_LIT>"):<EOL><INDENT>return<EOL><DEDENT>class_node = node.parent.frame()<EOL>if (<EOL>self._meth_could_be_func<EOL>and node.type == "<STR_LIT>"<EOL>and node.name not in PYMETHODS<EOL>and not (<EOL>node.is_abstract()<EOL>or overrides_a_method(class_node, node.name)<EOL>or decorated_with_property(node)<EOL>or _has_bare_super_call(node)<EOL>)<EOL>):<EOL><INDENT>self.add_message("<STR_LIT>", node=node)<EOL><DEDENT><DEDENT>
on method node, check if this method couldn't be a function

        ignore class, static and abstract methods, initializer,
        methods overridden from a parent class.