From ff16c42ed0965e1c8acf6e6a6dcda3ea50c107f2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sat, 21 Jul 2018 11:41:23 +0200 Subject: [PATCH] hugolib: Allow untyped nil to be merged in lang.Merge Fixes #4977 --- hugolib/pages_language_merge.go | 3 +++ hugolib/pages_language_merge_test.go | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/hugolib/pages_language_merge.go b/hugolib/pages_language_merge.go index 6e467c7a..ef87ac9c 100644 --- 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 index b7c78836..8a4688f1 100644 --- 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) { -- 2.30.2