File tree Expand file tree Collapse file tree 2 files changed +17
-4
lines changed
scripts/extension_api_parser Expand file tree Collapse file tree 2 files changed +17
-4
lines changed Original file line number Diff line number Diff line change 33from __future__ import annotations
44
55from dataclasses import dataclass
6+ from typing import Generator
67
78from .utils import *
89from .in_use import *
@@ -243,6 +244,18 @@ class BuiltinTypeSpec(TypeSpec):
243244 constants : list [BuiltinConstantSpec ]
244245 enums : list [EnumTypeSpec ]
245246
247+ @property
248+ def all_nested_scalar_members (self ) -> Generator [str ]:
249+ def _recursive_members (parent : BuiltinTypeSpec ) -> Generator [str ]:
250+ for member in parent .members :
251+ member_type = member .type .resolve ()
252+ if isinstance (member_type , BuiltinTypeSpec ):
253+ yield from (f"{ member .name } .{ sn } " for sn in _recursive_members (member_type ))
254+ else :
255+ yield member .name
256+
257+ yield from _recursive_members (self )
258+
246259 @property
247260 def is_builtin (self ) -> bool :
248261 return True
Original file line number Diff line number Diff line change @@ -26,11 +26,11 @@ def __repr__(self):
2626def __eq__(self, {{ builtin.cy_type }} other):
2727{% if builtin .is_transparent_builtin %}
2828 return (
29- {% for m in builtin .members %}
30- {% if not loop .first %}
29+ {% for field_path in builtin .all_nested_scalar_members %}
30+ {% if not loop .first %}
3131 and
32- {% endif %}
33- self._gd_data.{{ m.name }} == other._gd_data.{{ m.name }}
32+ {% endif %}
33+ self._gd_data.{{ field_path }} == other._gd_data.{{ field_path }}
3434{% endfor %}
3535 )
3636{% else %}
You can’t perform that action at this time.
0 commit comments