diff --git a/internal/encoding/dotenv/map_utils.go b/internal/encoding/dotenv/map_utils.go index ce6e6efa3..e880c95aa 100644 --- a/internal/encoding/dotenv/map_utils.go +++ b/internal/encoding/dotenv/map_utils.go @@ -24,9 +24,9 @@ func flattenAndMergeMap(shadow map[string]interface{}, m map[string]interface{}, } for k, val := range m { fullKey := prefix + k - switch val.(type) { + switch val := val.(type) { case map[string]interface{}: - m2 = val.(map[string]interface{}) + m2 = val case map[interface{}]interface{}: m2 = cast.ToStringMap(val) default: diff --git a/internal/encoding/ini/map_utils.go b/internal/encoding/ini/map_utils.go index 8329856b5..f39e95de4 100644 --- a/internal/encoding/ini/map_utils.go +++ b/internal/encoding/ini/map_utils.go @@ -57,9 +57,9 @@ func flattenAndMergeMap(shadow map[string]interface{}, m map[string]interface{}, } for k, val := range m { fullKey := prefix + k - switch val.(type) { + switch val := val.(type) { case map[string]interface{}: - m2 = val.(map[string]interface{}) + m2 = val case map[interface{}]interface{}: m2 = cast.ToStringMap(val) default: diff --git a/internal/encoding/javaproperties/map_utils.go b/internal/encoding/javaproperties/map_utils.go index 93755cac1..673bb700b 100644 --- a/internal/encoding/javaproperties/map_utils.go +++ b/internal/encoding/javaproperties/map_utils.go @@ -57,9 +57,9 @@ func flattenAndMergeMap(shadow map[string]interface{}, m map[string]interface{}, } for k, val := range m { fullKey := prefix + k - switch val.(type) { + switch val := val.(type) { case map[string]interface{}: - m2 = val.(map[string]interface{}) + m2 = val case map[interface{}]interface{}: m2 = cast.ToStringMap(val) default: diff --git a/overrides_test.go b/overrides_test.go index 8048204cf..4491ea232 100644 --- a/overrides_test.go +++ b/overrides_test.go @@ -156,11 +156,11 @@ func deepCheckValue(assert *assert.Assertions, v *Viper, l layer, keys []string, } // deep scan of the map to get the final value - switch val.(type) { + switch val := val.(type) { case map[interface{}]interface{}: m = cast.ToStringMap(val) case map[string]interface{}: - m = val.(map[string]interface{}) + m = val default: assert.Fail(fmt.Sprintf("%s is not a map[string]interface{}", ms)) return diff --git a/util.go b/util.go index 95009a147..8236d3aa8 100644 --- a/util.go +++ b/util.go @@ -70,17 +70,17 @@ func copyAndInsensitiviseMap(m map[string]interface{}) map[string]interface{} { } func insensitiviseVal(val interface{}) interface{} { - switch val.(type) { + switch v := val.(type) { case map[interface{}]interface{}: // nested map: cast and recursively insensitivise val = cast.ToStringMap(val) insensitiviseMap(val.(map[string]interface{})) case map[string]interface{}: // nested map: recursively insensitivise - insensitiviseMap(val.(map[string]interface{})) + insensitiviseMap(v) case []interface{}: // nested array: recursively insensitivise - insensitiveArray(val.([]interface{})) + insensitiveArray(v) } return val } diff --git a/viper.go b/viper.go index 7fb1e1913..6537cb418 100644 --- a/viper.go +++ b/viper.go @@ -666,13 +666,13 @@ func (v *Viper) searchMap(source map[string]interface{}, path []string) interfac } // Nested case - switch next.(type) { + switch next := next.(type) { case map[interface{}]interface{}: return v.searchMap(cast.ToStringMap(next), path[1:]) case map[string]interface{}: // Type assertion is safe here since it is only reached // if the type of `next` is the same as the type being asserted - return v.searchMap(next.(map[string]interface{}), path[1:]) + return v.searchMap(next, path[1:]) default: // got a value but nested key expected, return "nil" for not found return nil @@ -2051,9 +2051,9 @@ func (v *Viper) flattenAndMergeMap(shadow map[string]bool, m map[string]interfac } for k, val := range m { fullKey := prefix + k - switch val.(type) { + switch val := val.(type) { case map[string]interface{}: - m2 = val.(map[string]interface{}) + m2 = val case map[interface{}]interface{}: m2 = cast.ToStringMap(val) default: