all: make use of sync.Map.Clear

Since CL 515015 added sync.Map.Clear method, we can use it to make
the code simpler and clearer.

Change-Id: I29edc969431b4fd95cd5fd864953a71ca1538dd3
Reviewed-on: https://go-review.googlesource.com/c/go/+/582015
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Joedian Reid <joedian@google.com>
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/src/cmd/go/internal/par/work.go b/src/cmd/go/internal/par/work.go
index 5b6de94..3f1e69a 100644
--- a/src/cmd/go/internal/par/work.go
+++ b/src/cmd/go/internal/par/work.go
@@ -189,10 +189,7 @@
 // TODO(jayconrod): Delete this after the package cache clearing functions
 // in internal/load have been removed.
 func (c *Cache[K, V]) Clear() {
-	c.m.Range(func(key, value any) bool {
-		c.m.Delete(key)
-		return true
-	})
+	c.m.Clear()
 }
 
 // Delete removes an entry from the map. It is safe to call Delete for an
diff --git a/src/expvar/expvar.go b/src/expvar/expvar.go
index ffe35d6..4f66848 100644
--- a/src/expvar/expvar.go
+++ b/src/expvar/expvar.go
@@ -169,10 +169,7 @@
 	v.keysMu.Lock()
 	defer v.keysMu.Unlock()
 	v.keys = v.keys[:0]
-	v.m.Range(func(k, _ any) bool {
-		v.m.Delete(k)
-		return true
-	})
+	v.m.Clear()
 	return v
 }
 
diff --git a/src/mime/type.go b/src/mime/type.go
index 465ecf0..6d42669 100644
--- a/src/mime/type.go
+++ b/src/mime/type.go
@@ -22,18 +22,11 @@
 	extensions   sync.Map   // map[string][]string; slice values are append-only.
 )
 
-func clearSyncMap(m *sync.Map) {
-	m.Range(func(k, _ any) bool {
-		m.Delete(k)
-		return true
-	})
-}
-
 // setMimeTypes is used by initMime's non-test path, and by tests.
 func setMimeTypes(lowerExt, mixExt map[string]string) {
-	clearSyncMap(&mimeTypes)
-	clearSyncMap(&mimeTypesLower)
-	clearSyncMap(&extensions)
+	mimeTypes.Clear()
+	mimeTypesLower.Clear()
+	extensions.Clear()
 
 	for k, v := range lowerExt {
 		mimeTypesLower.Store(k, v)