Skip to content

Commit 530a45a

Browse files
committed
Fix __contains__ operator for PackedByteArray/PackedInt32Array/PackedInt64Array/PackedFloat32Array/PackedFloat64Array
1 parent df7ee43 commit 530a45a

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/godot/builtins_pyx/operator.pyx.j2

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,14 @@ def __iter__(self):
6161
def __contains__(self, object needle):
6262
return self.has(needle)
6363
{% elif builtin.is_packed_array %}
64+
{% if builtin.original_name in ("PackedByteArray", "PackedInt32Array", "PackedInt64Array", "PackedFloat32Array", "PackedFloat64Array") %}
65+
# TODO: `extension_api.json` doesn't expose `in` operator for those types...
66+
def __contains__(self, {{ builtin.indexing_return_type.cy_type }} needle):
67+
return gdapi.gd_{{ builtin.snake_name }}_meth_has(&self._gd_data, needle) == 1
68+
{% else %}
6469
def __contains__(self, {{ builtin.indexing_return_type.cy_type }} needle):
6570
return gdapi.gd_{{ builtin.indexing_return_type.snake_name }}_op_in_{{ builtin.snake_name }}(&needle._gd_data, &self._gd_data) == 1
71+
{% endif %}
6672
{% elif builtin.original_name in ("String", "StringName") %}
6773
def __contains__(self, object needle):
6874
return self.contains(needle)

0 commit comments

Comments
 (0)