hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 2fefc01606fddb119f368c89fb2dedd452ad6547
parent 0c251be66bf3ad4abafbc47583e394ca4e6ffcf1
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Thu, 23 Jan 2020 10:48:28 +0100

tpl/compare: Fix eq when > 2 args

Fixes #6786

Diffstat:
Mtpl/compare/compare.go | 10++++++++--
Mtpl/compare/compare_test.go | 3+++
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git 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
@@ -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...)