URI: 
       tpl/collections: Fix merge vs Params - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 1b785a7a6d3c264e39e4976c59b618c0ac1ba5f9
   DIR parent d20ca3700512d661247b44d953515b9455e57ed6
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Wed, 18 Dec 2019 21:31:34 +0100
       
       tpl/collections: Fix merge vs Params
       
       Fixes #6633
       
       Diffstat:
         M tpl/collections/merge.go            |       2 +-
         M tpl/collections/merge_test.go       |      14 ++++++++++++++
       
       2 files changed, 15 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/tpl/collections/merge.go b/tpl/collections/merge.go
       @@ -40,7 +40,7 @@ func (ns *Namespace) Merge(src, dst interface{}) (interface{}, error) {
                        return nil, errors.Errorf("source must be a map, got %T", src)
                }
        
       -        if vsrc.Type() != vdst.Type() {
       +        if vsrc.Type().Key() != vdst.Type().Key() {
                        return nil, errors.Errorf("incompatible map types, got %T to %T", src, dst)
                }
        
   DIR diff --git a/tpl/collections/merge_test.go b/tpl/collections/merge_test.go
       @@ -21,6 +21,8 @@ import (
                "strings"
                "testing"
        
       +        "github.com/gohugoio/hugo/common/maps"
       +
                "github.com/gohugoio/hugo/parser"
        
                "github.com/gohugoio/hugo/parser/metadecoders"
       @@ -57,6 +59,18 @@ func TestMerge(t *testing.T) {
                                map[string]interface{}{"a": 1, "b": map[string]interface{}{"d": 1, "e": 2}},
                                map[string]interface{}{"a": 42, "c": 3, "b": map[string]interface{}{"d": 55, "e": 66, "f": 3}},
                                map[string]interface{}{"a": 1, "b": map[string]interface{}{"d": 1, "e": 2, "f": 3}, "c": 3}, false},
       +                {
       +                        // https://github.com/gohugoio/hugo/issues/6633
       +                        "params dst",
       +                        maps.Params{"a": 1, "b": 2},
       +                        map[string]interface{}{"a": 42, "c": 3},
       +                        maps.Params{"a": int(1), "b": int(2), "c": int(3)}, false},
       +                {
       +                        // https://github.com/gohugoio/hugo/issues/6633
       +                        "params src",
       +                        map[string]interface{}{"a": 1, "c": 2},
       +                        maps.Params{"a": 42, "c": 3},
       +                        map[string]interface{}{"a": int(1), "c": int(2)}, false},
                        {"src nil", simpleMap, nil, simpleMap, false},
                        // Error cases.
                        {"dst not a map", "not a map", nil, nil, true},