From 2fefc01606fddb119f368c89fb2dedd452ad6547 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 23 Jan 2020 10:48:28 +0100 Subject: [PATCH] tpl/compare: Fix eq when > 2 args Fixes #6786 --- tpl/compare/compare.go | 10 ++++++++-- tpl/compare/compare_test.go | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/tpl/compare/compare.go b/tpl/compare/compare.go index b5b99ff9a..e005aff06 100644 --- a/tpl/compare/compare.go +++ b/tpl/compare/compare.go @@ -119,11 +119,17 @@ func (n *Namespace) Eq(first interface{}, others ...interface{}) bool { normFirst := normalize(first) for _, other := range others { if e, ok := first.(compare.Eqer); ok { - return e.Eq(other) + if e.Eq(other) { + return true + } + continue } if e, ok := other.(compare.Eqer); ok { - return e.Eq(first) + if e.Eq(first) { + return true + } + continue } other = normalize(other) diff --git a/tpl/compare/compare_test.go b/tpl/compare/compare_test.go index aeadb02f9..3eb793d30 100644 --- a/tpl/compare/compare_test.go +++ b/tpl/compare/compare_test.go @@ -275,6 +275,9 @@ func TestEqualExtend(t *testing.T) { {1, []interface{}{1, 2}, true}, {1, []interface{}{2, 1}, true}, {1, []interface{}{2, 3}, false}, + {tstEqerType1("a"), []interface{}{tstEqerType1("a"), tstEqerType1("b")}, true}, + {tstEqerType1("a"), []interface{}{tstEqerType1("b"), tstEqerType1("a")}, true}, + {tstEqerType1("a"), []interface{}{tstEqerType1("b"), tstEqerType1("c")}, false}, } { result := ns.Eq(test.first, test.others...)