Loading android/util.go +2 −15 Original line number Diff line number Diff line Loading @@ -65,21 +65,8 @@ func JoinWithPrefixAndSeparator(strs []string, prefix string, sep string) string // 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 { Loading android/util_test.go +0 −38 Original line number Diff line number Diff line Loading @@ -671,44 +671,6 @@ func TestSortedKeys(t *testing.T) { 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 Loading Loading
android/util.go +2 −15 Original line number Diff line number Diff line Loading @@ -65,21 +65,8 @@ func JoinWithPrefixAndSeparator(strs []string, prefix string, sep string) string // 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 { Loading
android/util_test.go +0 −38 Original line number Diff line number Diff line Loading @@ -671,44 +671,6 @@ func TestSortedKeys(t *testing.T) { 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 Loading