Make SortedStringKeys call SortedKeys
I realized this could work if I make it generic.
Bug: 193460475
Test: m nothing
Change-Id: I2071b4cdbccb642ebdbb1342f7d91e581aab9f0f
diff --git a/android/util.go b/android/util.go
index 6c0ddf4..38e0a4d 100644
--- a/android/util.go
+++ b/android/util.go
@@ -65,21 +65,8 @@
// SortedStringKeys returns the keys of the given map in the ascending order.
//
// Deprecated: Use SortedKeys instead.
-func SortedStringKeys(m interface{}) []string {
- v := reflect.ValueOf(m)
- if v.Kind() != reflect.Map {
- panic(fmt.Sprintf("%#v is not a map", m))
- }
- if v.Len() == 0 {
- return nil
- }
- iter := v.MapRange()
- s := make([]string, 0, v.Len())
- for iter.Next() {
- s = append(s, iter.Key().String())
- }
- sort.Strings(s)
- return s
+func SortedStringKeys[V any](m map[string]V) []string {
+ return SortedKeys(m)
}
type Ordered interface {
diff --git a/android/util_test.go b/android/util_test.go
index 51d8e32..1034d9e 100644
--- a/android/util_test.go
+++ b/android/util_test.go
@@ -671,44 +671,6 @@
testSortedKeysHelper(t, "empty", map[string]string{}, nil)
}
-func TestSortedStringKeys(t *testing.T) {
- testCases := []struct {
- name string
- in interface{}
- expected []string
- }{
- {
- name: "nil",
- in: map[string]string(nil),
- expected: nil,
- },
- {
- name: "empty",
- in: map[string]string{},
- expected: nil,
- },
- {
- name: "simple",
- in: map[string]string{"a": "foo", "b": "bar"},
- expected: []string{"a", "b"},
- },
- {
- name: "interface values",
- in: map[string]interface{}{"a": nil, "b": nil},
- expected: []string{"a", "b"},
- },
- }
-
- for _, tt := range testCases {
- t.Run(tt.name, func(t *testing.T) {
- got := SortedStringKeys(tt.in)
- if g, w := got, tt.expected; !reflect.DeepEqual(g, w) {
- t.Errorf("wanted %q, got %q", w, g)
- }
- })
- }
-}
-
func TestSortedStringValues(t *testing.T) {
testCases := []struct {
name string