// IntuitiveMethodSet returns the intuitive method set of a type T, // which is the set of methods you can call on an addressable value of // that type. // // The result always contains MethodSet(T), and is exactly MethodSet(T) // for interface types and for pointer-to-concrete types. // For all other concrete types T, the result additionally // contains each method belonging to *T if there is no identically // named method on T itself. // // This corresponds to user intuition about method sets; // this function is intended only for user interfaces. // // The order of the result is as for types.MethodSet(T). func IntuitiveMethodSet(T types.Type, msets *MethodSetCache) []*types.Selection { … }