(
message: Message,
enclosing_messages: Optional[List[Message]] = None,
)
| 304 | |
| 305 | def _apply_field_defaults(self) -> None: |
| 306 | def apply_message_fields( |
| 307 | message: Message, |
| 308 | enclosing_messages: Optional[List[Message]] = None, |
| 309 | ) -> None: |
| 310 | lineage = (enclosing_messages or []) + [message] |
| 311 | for field in message.fields: |
| 312 | if self.schema.source_format == "fdl" and field.tag_id is None: |
| 313 | field.tag_id = field.number |
| 314 | if self._is_message_type(field.field_type, lineage): |
| 315 | explicit_optional = field.optional |
| 316 | if self.schema.source_format == "fdl" and explicit_optional: |
| 317 | self._error( |
| 318 | "Message fields are always optional; remove the optional modifier", |
| 319 | field.location, |
| 320 | ) |
| 321 | field.optional = True |
| 322 | for nested_msg in message.nested_messages: |
| 323 | apply_message_fields(nested_msg, lineage) |
| 324 | |
| 325 | for message in self.schema.messages: |
| 326 | apply_message_fields(message) |
nothing calls this directly
no test coverage detected