Skip to content

Commit 095108e

Browse files
authored
implement the "in" operator on slice with EqualValueTo() (#254)
It allows to make it work with different but equivalent types (e.g. int and int64).
1 parent 5839421 commit 095108e

File tree

3 files changed

+3
-1
lines changed

3 files changed

+3
-1
lines changed

template_tests/if.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
{% if !simple.float %}false{% else %}!simple.float{% endif %}
88
{% if "Text" in complex.post %}text field in complex.post{% endif %}
99
{% if 5 in simple.intmap %}5 in simple.intmap{% endif %}
10+
{% if simple.uint in simple.multiple_item_list %}simple.uint in simple.multiple_item_list{% endif %}
1011
{% if !0.0 %}!0.0{% endif %}
1112
{% if !0 %}!0{% endif %}
1213
{% if not complex.post %}true{% else %}false{% endif %}

template_tests/if.tpl.out

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ float != 0.0
77
!simple.float
88
text field in complex.post
99
5 in simple.intmap
10+
simple.uint in simple.multiple_item_list
1011
!0.0
1112
!0
1213
false

value.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ func (v *Value) Contains(other *Value) bool {
348348
case reflect.Slice, reflect.Array:
349349
for i := 0; i < v.getResolvedValue().Len(); i++ {
350350
item := v.getResolvedValue().Index(i)
351-
if other.Interface() == item.Interface() {
351+
if other.EqualValueTo(AsValue(item.Interface())) {
352352
return true
353353
}
354354
}

0 commit comments

Comments
 (0)