@@ -2723,7 +2723,7 @@ def infer_metaclass_and_bases_from_compat_helpers(self, defn: ClassDef) -> None:
27232723 if len (metas ) == 0 :
27242724 return
27252725 if len (metas ) > 1 :
2726- self .fail ("Multiple metaclass definitions" , defn )
2726+ self .fail ("Multiple metaclass definitions" , defn , code = codes . METACLASS )
27272727 return
27282728 defn .metaclass = metas .pop ()
27292729
@@ -2779,7 +2779,11 @@ def get_declared_metaclass(
27792779 elif isinstance (metaclass_expr , MemberExpr ):
27802780 metaclass_name = get_member_expr_fullname (metaclass_expr )
27812781 if metaclass_name is None :
2782- self .fail (f'Dynamic metaclass not supported for "{ name } "' , metaclass_expr )
2782+ self .fail (
2783+ f'Dynamic metaclass not supported for "{ name } "' ,
2784+ metaclass_expr ,
2785+ code = codes .METACLASS ,
2786+ )
27832787 return None , False , True
27842788 sym = self .lookup_qualified (metaclass_name , metaclass_expr )
27852789 if sym is None :
@@ -2790,6 +2794,7 @@ def get_declared_metaclass(
27902794 self .fail (
27912795 f'Class cannot use "{ sym .node .name } " as a metaclass (has type "Any")' ,
27922796 metaclass_expr ,
2797+ code = codes .METACLASS ,
27932798 )
27942799 return None , False , True
27952800 if isinstance (sym .node , PlaceholderNode ):
@@ -2807,11 +2812,15 @@ def get_declared_metaclass(
28072812 metaclass_info = target .type
28082813
28092814 if not isinstance (metaclass_info , TypeInfo ) or metaclass_info .tuple_type is not None :
2810- self .fail (f'Invalid metaclass "{ metaclass_name } "' , metaclass_expr )
2815+ self .fail (
2816+ f'Invalid metaclass "{ metaclass_name } "' , metaclass_expr , code = codes .METACLASS
2817+ )
28112818 return None , False , False
28122819 if not metaclass_info .is_metaclass ():
28132820 self .fail (
2814- 'Metaclasses not inheriting from "type" are not supported' , metaclass_expr
2821+ 'Metaclasses not inheriting from "type" are not supported' ,
2822+ metaclass_expr ,
2823+ code = codes .METACLASS ,
28152824 )
28162825 return None , False , False
28172826 inst = fill_typevars (metaclass_info )
0 commit comments