commit ff16c42ed0965e1c8acf6e6a6dcda3ea50c107f2
parent 166483fe1227b0c59c6b4d88cfdfaf7d7b0d79c5
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date: Sat, 21 Jul 2018 11:41:23 +0200
hugolib: Allow untyped nil to be merged in lang.Merge
Fixes #4977
Diffstat:
2 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/hugolib/pages_language_merge.go b/hugolib/pages_language_merge.go
@@ -53,6 +53,9 @@ func (p1 Pages) MergeByLanguage(p2 Pages) Pages {
// MergeByLanguageInterface is the generic version of MergeByLanguage. It
// is here just so it can be called from the tpl package.
func (p1 Pages) MergeByLanguageInterface(in interface{}) (interface{}, error) {
+ if in == nil {
+ return p1, nil
+ }
p2, ok := in.(Pages)
if !ok {
return nil, fmt.Errorf("%T cannot be merged by language", in)
diff --git a/hugolib/pages_language_merge_test.go b/hugolib/pages_language_merge_test.go
@@ -79,6 +79,11 @@ func TestMergeLanguages(t *testing.T) {
// This looks less ugly in the templates ...
mergedNNResources := ri.(resource.ResourcesLanguageMerger).MergeByLanguage(enBundle.Resources)
assert.Equal(6, len(mergedNNResources))
+
+ unchanged, err := nnSite.RegularPages.MergeByLanguageInterface(nil)
+ assert.NoError(err)
+ assert.Equal(nnSite.RegularPages, unchanged)
+
}
func TestMergeLanguagesTemplate(t *testing.T) {