(
self, field: Field, parent_stack: Optional[List[Message]]
)
| 687 | ) |
| 688 | |
| 689 | def get_field_eq_expression( |
| 690 | self, field: Field, parent_stack: Optional[List[Message]] |
| 691 | ) -> str: |
| 692 | member_name = self.get_field_member_name(field) |
| 693 | other_member = f"other.{member_name}" |
| 694 | if isinstance(field.field_type, PrimitiveType) and ( |
| 695 | field.field_type.kind == PrimitiveKind.ANY |
| 696 | ): |
| 697 | return ( |
| 698 | f"((!{member_name}.has_value() && !{other_member}.has_value()) || " |
| 699 | f"({member_name}.type() == {other_member}.type()))" |
| 700 | ) |
| 701 | if self.is_message_type( |
| 702 | field.field_type, parent_stack |
| 703 | ) and self.get_field_weak_ref(field): |
| 704 | return ( |
| 705 | f"(([&]() {{ auto left = {member_name}.upgrade(); " |
| 706 | f"auto right = {other_member}.upgrade(); " |
| 707 | f"return left == right; }})())" |
| 708 | ) |
| 709 | if self.is_message_type(field.field_type, parent_stack) and field.ref: |
| 710 | return f"{member_name} == {other_member}" |
| 711 | if self.is_message_type(field.field_type, parent_stack): |
| 712 | return ( |
| 713 | f"(({member_name} && {other_member}) ? " |
| 714 | f"(*{member_name} == *{other_member}) : " |
| 715 | f"({member_name} == {other_member}))" |
| 716 | ) |
| 717 | return f"{member_name} == {other_member}" |
| 718 | |
| 719 | def is_numeric_field(self, field: Field) -> bool: |
| 720 | if not isinstance(field.field_type, PrimitiveType): |
no test coverage detected