summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/stretchr/objx/type_specific_codegen.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/stretchr/objx/type_specific_codegen.go')
-rw-r--r--vendor/github.com/stretchr/objx/type_specific_codegen.go23
1 files changed, 19 insertions, 4 deletions
diff --git a/vendor/github.com/stretchr/objx/type_specific_codegen.go b/vendor/github.com/stretchr/objx/type_specific_codegen.go
index 202a91f8c..de4240955 100644
--- a/vendor/github.com/stretchr/objx/type_specific_codegen.go
+++ b/vendor/github.com/stretchr/objx/type_specific_codegen.go
@@ -276,13 +276,28 @@ func (v *Value) MustObjxMap() Map {
// ObjxMapSlice gets the value as a [](Map), returns the optionalDefault
// value or nil if the value is not a [](Map).
func (v *Value) ObjxMapSlice(optionalDefault ...[](Map)) [](Map) {
- if s, ok := v.data.([](Map)); ok {
+ if s, ok := v.data.([]Map); ok {
return s
}
- if len(optionalDefault) == 1 {
- return optionalDefault[0]
+ s, ok := v.data.([]interface{})
+ if !ok {
+ if len(optionalDefault) == 1 {
+ return optionalDefault[0]
+ } else {
+ return nil
+ }
}
- return nil
+
+ result := make([]Map, len(s))
+ for i := range s {
+ switch s[i].(type) {
+ case Map:
+ result[i] = s[i].(Map)
+ default:
+ return nil
+ }
+ }
+ return result
}
// MustObjxMapSlice gets the value as a [](Map).