MCPcopy Create free account
hub / github.com/apache/fory / apply_message_fields

Method apply_message_fields

compiler/fory_compiler/ir/validator.py:306–323  ·  view source on GitHub ↗
(
            message: Message,
            enclosing_messages: Optional[List[Message]] = None,
        )

Source from the content-addressed store, hash-verified

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)

Callers

nothing calls this directly

Calls 2

_is_message_typeMethod · 0.95
_errorMethod · 0.95

Tested by

no test coverage detected