Commit a5a2b94c authored by Weixu Zhuang's avatar Weixu Zhuang

In pkg/kubectl/describe.go function Matches support unordered types matches.

The argument of function need to be matched. It did not support unorder matches. This is a TODO and I fix it.(line 1763 in pkg/kubectl/describe.go) I use a map to solve it which could compare two types array's difference.
parent e99243fd
......@@ -1732,13 +1732,18 @@ type typeFunc struct {
}
// Matches returns true when the passed types exactly match the Extra list.
// TODO: allow unordered types to be matched and reorderd.
func (fn typeFunc) Matches(types []reflect.Type) bool {
if len(fn.Extra) != len(types) {
return false
}
// reorder the items in array types and fn.Extra
// convert the type into string and sort them, check if they are matched
varMap := make(map[reflect.Type]bool)
for i := range fn.Extra {
varMap[fn.Extra[i]] = true
}
for i := range types {
if fn.Extra[i] != types[i] {
if _, found := varMap[types[i]]; !found {
return false
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment