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

Method validate_message

compiler/fory_compiler/ir/validator.py:200–248  ·  view source on GitHub ↗
(message: Message, parent_path: str = "")

Source from the content-addressed store, hash-verified

198
199 def _check_messages(self) -> None:
200 def validate_message(message: Message, parent_path: str = ""):
201 full_name = f"{parent_path}.{message.name}" if parent_path else message.name
202
203 nested_names = {}
204 for nested_enum in message.nested_enums:
205 if nested_enum.name in nested_names:
206 self._error(
207 f"Duplicate nested type name in {full_name}: {nested_enum.name}",
208 nested_enum.location,
209 )
210 nested_names.setdefault(nested_enum.name, nested_enum.location)
211 for nested_union in message.nested_unions:
212 if nested_union.name in nested_names:
213 self._error(
214 f"Duplicate nested type name in {full_name}: {nested_union.name}",
215 nested_union.location,
216 )
217 nested_names.setdefault(nested_union.name, nested_union.location)
218 for nested_msg in message.nested_messages:
219 if nested_msg.name in nested_names:
220 self._error(
221 f"Duplicate nested type name in {full_name}: {nested_msg.name}",
222 nested_msg.location,
223 )
224 nested_names.setdefault(nested_msg.name, nested_msg.location)
225
226 field_numbers = {}
227 field_names = {}
228 for f in message.fields:
229 if f.number in field_numbers:
230 self._error(
231 f"Duplicate field number {f.number} in {full_name}: {f.name} and {field_numbers[f.number].name}",
232 f.location,
233 )
234 field_numbers.setdefault(f.number, f)
235 if f.name in field_names:
236 self._error(
237 f"Duplicate field name in {full_name}: {f.name}", f.location
238 )
239 field_names.setdefault(f.name, f)
240
241 for nested_enum in message.nested_enums:
242 validate_enum(nested_enum, full_name)
243
244 for nested_union in message.nested_unions:
245 validate_union(nested_union, full_name)
246
247 for nested_msg in message.nested_messages:
248 validate_message(nested_msg, full_name)
249
250 def validate_enum(enum: Enum, parent_path: str = ""):
251 full_name = f"{parent_path}.{enum.name}" if parent_path else enum.name

Callers

nothing calls this directly

Calls 2

_errorMethod · 0.95
setdefaultMethod · 0.80

Tested by

no test coverage detected