@@ -2592,7 +2592,7 @@ def infer_metaclass_and_bases_from_compat_helpers(self, defn: ClassDef) -> None:
25922592 if len (metas ) == 0 :
25932593 return
25942594 if len (metas ) > 1 :
2595- self .fail ("Multiple metaclass definitions" , defn )
2595+ self .fail ("Multiple metaclass definitions" , defn , code = codes . METACLASS )
25962596 return
25972597 defn .metaclass = metas .pop ()
25982598
@@ -2648,7 +2648,7 @@ def get_declared_metaclass(
26482648 elif isinstance (metaclass_expr , MemberExpr ):
26492649 metaclass_name = get_member_expr_fullname (metaclass_expr )
26502650 if metaclass_name is None :
2651- self .fail (f'Dynamic metaclass not supported for "{ name } "' , metaclass_expr )
2651+ self .fail (f'Dynamic metaclass not supported for "{ name } "' , metaclass_expr , code = codes . METACLASS )
26522652 return None , False , True
26532653 sym = self .lookup_qualified (metaclass_name , metaclass_expr )
26542654 if sym is None :
@@ -2659,6 +2659,7 @@ def get_declared_metaclass(
26592659 self .fail (
26602660 f'Class cannot use "{ sym .node .name } " as a metaclass (has type "Any")' ,
26612661 metaclass_expr ,
2662+ code = codes .METACLASS ,
26622663 )
26632664 return None , False , True
26642665 if isinstance (sym .node , PlaceholderNode ):
@@ -2676,11 +2677,13 @@ def get_declared_metaclass(
26762677 metaclass_info = sym .node
26772678
26782679 if not isinstance (metaclass_info , TypeInfo ) or metaclass_info .tuple_type is not None :
2679- self .fail (f'Invalid metaclass "{ metaclass_name } "' , metaclass_expr )
2680+ self .fail (f'Invalid metaclass "{ metaclass_name } "' , metaclass_expr , code = codes . METACLASS )
26802681 return None , False , False
26812682 if not metaclass_info .is_metaclass ():
26822683 self .fail (
2683- 'Metaclasses not inheriting from "type" are not supported' , metaclass_expr
2684+ 'Metaclasses not inheriting from "type" are not supported' ,
2685+ metaclass_expr ,
2686+ code = codes .METACLASS ,
26842687 )
26852688 return None , False , False
26862689 inst = fill_typevars (metaclass_info )
0 commit comments