def visit_classdef(self, node):
if hasattr(node, "<STR_LIT>"):<EOL><INDENT>return<EOL><DEDENT>node.locals_type = collections.defaultdict(list)<EOL>if self.tag:<EOL><INDENT>node.uid = self.generate_id()<EOL><DEDENT>for baseobj in node.ancestors(recurs=False):<EOL><INDENT>specializations = getattr(baseobj, "<STR_LIT>", [])<EOL>specializations.append(node)<EOL>baseobj.specializations = specializations<EOL><DEDENT>node.instance_attrs_type = collections.defaultdict(list)<EOL>for assignattrs in node.instance_attrs.values():<EOL><INDENT>for assignattr in assignattrs:<EOL><INDENT>self.handle_assignattr_type(assignattr, node)<EOL><DEDENT><DEDENT>try:<EOL><INDENT>node.implements = list(interfaces(node, self.inherited_interfaces))<EOL><DEDENT>except astroid.InferenceError:<EOL><INDENT>node.implements = ()<EOL><DEDENT>
visit an astroid.Class node

         * set the locals_type and instance_attrs_type mappings
         * set the implements list and build it
         * optionally tag the node with a unique id