summaryrefslogtreecommitdiff
path: root/spew/dump.go
diff options
context:
space:
mode:
Diffstat (limited to 'spew/dump.go')
-rw-r--r--spew/dump.go20
1 files changed, 4 insertions, 16 deletions
diff --git a/spew/dump.go b/spew/dump.go
index c06750d..771b473 100644
--- a/spew/dump.go
+++ b/spew/dump.go
@@ -269,29 +269,17 @@ func (s *valuesSorter) Less(i, j int) bool {
case reflect.Uintptr:
return s.values[i].UnsafeAddr() < s.values[j].UnsafeAddr()
}
- panic("notimplemented")
+ return s.values[i].String() < s.values[j].String()
}
// Generic sort function for native types: int, uint, bool, string and uintptr.
-// Other inputs are left unchanged.
+// Other inputs are sort according to their Value.String() value to ensure
+// display stability.
func SortValues(values []reflect.Value) {
if len(values) == 0 {
return
}
- switch values[0].Kind() {
- case reflect.Bool:
- sort.Sort(&valuesSorter{values})
- case reflect.Float32, reflect.Float64:
- sort.Sort(&valuesSorter{values})
- case reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Int:
- sort.Sort(&valuesSorter{values})
- case reflect.String:
- sort.Sort(&valuesSorter{values})
- case reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uint:
- sort.Sort(&valuesSorter{values})
- case reflect.Uintptr:
- sort.Sort(&valuesSorter{values})
- }
+ sort.Sort(&valuesSorter{values})
}
// dump is the main workhorse for dumping a value. It uses the passed reflect