@@ -3077,7 +3077,11 @@ def nonliteral_tuple_index_helper(self, left_type: TupleType, index: Expression)
3077
3077
else :
3078
3078
return union
3079
3079
3080
- def visit_typeddict_index_expr (self , td_type : TypedDictType , index : Expression ) -> Type :
3080
+ def visit_typeddict_index_expr (self , td_type : TypedDictType ,
3081
+ index : Expression ,
3082
+ local_errors : Optional [MessageBuilder ] = None
3083
+ ) -> Type :
3084
+ local_errors = local_errors or self .msg
3081
3085
if isinstance (index , (StrExpr , UnicodeExpr )):
3082
3086
key_names = [index .value ]
3083
3087
else :
@@ -3097,14 +3101,14 @@ def visit_typeddict_index_expr(self, td_type: TypedDictType, index: Expression)
3097
3101
and key_type .fallback .type .fullname != 'builtins.bytes' ):
3098
3102
key_names .append (key_type .value )
3099
3103
else :
3100
- self . msg .typeddict_key_must_be_string_literal (td_type , index )
3104
+ local_errors .typeddict_key_must_be_string_literal (td_type , index )
3101
3105
return AnyType (TypeOfAny .from_error )
3102
3106
3103
3107
value_types = []
3104
3108
for key_name in key_names :
3105
3109
value_type = td_type .items .get (key_name )
3106
3110
if value_type is None :
3107
- self . msg .typeddict_key_not_found (td_type , key_name , index )
3111
+ local_errors .typeddict_key_not_found (td_type , key_name , index )
3108
3112
return AnyType (TypeOfAny .from_error )
3109
3113
else :
3110
3114
value_types .append (value_type )
0 commit comments