@@ -290,17 +290,16 @@ def walk(self, desc: Descriptor) -> bool:
290290 continue
291291
292292 # Repeated fields (including maps which are represented as repeated messages)
293- if field .label == FieldDescriptor .LABEL_REPEATED :
294- if (
295- field .message_type is not None
296- and field .message_type .GetOptions ().map_entry
297- ):
298- val_fd = field .message_type .fields_by_name .get ("value" )
293+ if field .is_repeated :
294+ message_type = field .message_type
295+ if message_type is not None and message_type .GetOptions ().map_entry :
296+ val_fd = message_type .fields_by_name .get ("value" )
299297 if (
300298 val_fd is not None
301299 and val_fd .type == FieldDescriptor .TYPE_MESSAGE
302300 ):
303301 child_desc = val_fd .message_type
302+ assert child_desc is not None
304303 child_needed = self .walk (child_desc )
305304 if child_needed :
306305 has_payload = True
@@ -313,12 +312,13 @@ def walk(self, desc: Descriptor) -> bool:
313312 )
314313 )
315314
316- key_fd = field . message_type .fields_by_name .get ("key" )
315+ key_fd = message_type .fields_by_name .get ("key" )
317316 if (
318317 key_fd is not None
319318 and key_fd .type == FieldDescriptor .TYPE_MESSAGE
320319 ):
321320 child_desc = key_fd .message_type
321+ assert child_desc is not None
322322 child_needed = self .walk (child_desc )
323323 if child_needed :
324324 has_payload = True
@@ -331,14 +331,16 @@ def walk(self, desc: Descriptor) -> bool:
331331 )
332332 )
333333 else :
334+ assert message_type is not None
334335 item = self ._collect_repeated (
335- field . message_type , field , f"o.{ field .name } "
336+ message_type , field , f"o.{ field .name } "
336337 )
337338 if item is not None :
338339 has_payload = True
339340 emit_items .append (item )
340341 else :
341342 child_desc = field .message_type
343+ assert child_desc is not None
342344 child_has_payload = self .walk (child_desc )
343345 has_payload |= child_has_payload
344346 if child_has_payload :
@@ -358,6 +360,7 @@ def walk(self, desc: Descriptor) -> bool:
358360 first = True
359361 for field in fields :
360362 child_desc = field .message_type
363+ assert child_desc is not None
361364 child_has_payload = self .walk (child_desc )
362365 has_payload |= child_has_payload
363366 if child_has_payload :
0 commit comments