From cb9b2bffc29feee931b995fa5783fa68a9378366 Mon Sep 17 00:00:00 2001
From: guangwu <guoguangwu@magic-shield.com>
Date: Fri, 28 Jul 2023 02:56:32 +0800
Subject: [PATCH] fix: code optimization (#1557)

* fix: code optimization

* fix: golangci-lint
---
 internal/encoding/dotenv/map_utils.go         | 4 ++--
 internal/encoding/ini/map_utils.go            | 4 ++--
 internal/encoding/javaproperties/map_utils.go | 4 ++--
 overrides_test.go                             | 4 ++--
 util.go                                       | 6 +++---
 viper.go                                      | 8 ++++----
 6 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/internal/encoding/dotenv/map_utils.go b/internal/encoding/dotenv/map_utils.go
index ce6e6ef..e880c95 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 8329856..f39e95d 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 93755ca..673bb70 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 8048204..4491ea2 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 95009a1..8236d3a 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 0158a7f..2ff730f 100644
--- a/viper.go
+++ b/viper.go
@@ -672,13 +672,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
@@ -2057,9 +2057,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: