Skip to content

Commit 7f878ad

Browse files
committed
Use type switch to make intent more clear
1 parent c5f0b5b commit 7f878ad

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

pkg/util/template.go

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -300,21 +300,25 @@ func merge(values ...interface{}) (interface{}, error) {
300300
func mergeMap(path string, l, r map[string]interface{}) (map[string]interface{}, error) {
301301
var err error
302302

303-
for k, v := range r {
304-
rMap, ok := v.(map[string]interface{})
305-
if !ok || l[k] == nil {
306-
l[k] = v
303+
for k, val := range r {
304+
if l[k] == nil {
305+
l[k] = val
307306
continue
308307
}
309308

310-
lMap, ok := l[k].(map[string]interface{})
311-
if !ok {
312-
return nil, fmt.Errorf("%s: Expected map[string]interface{}, got %s", joinPath(path, k), typeLabel(l[k]))
313-
}
309+
switch v := val.(type) {
310+
case map[string]interface{}:
311+
lMap, ok := l[k].(map[string]interface{})
312+
if !ok {
313+
return nil, fmt.Errorf("%s: Expected map[string]interface{}, got %s", joinPath(path, k), typeLabel(l[k]))
314+
}
314315

315-
l[k], err = mergeMap(joinPath(path, k), lMap, rMap)
316-
if err != nil {
317-
return nil, err
316+
l[k], err = mergeMap(joinPath(path, k), lMap, v)
317+
if err != nil {
318+
return nil, err
319+
}
320+
default:
321+
l[k] = val
318322
}
319323
}
320324

0 commit comments

Comments
 (0)