type subster …
func makeSubster(ctxt *types.Context, fn *types.Func, tparams *types.TypeParamList, targs []types.Type, debug bool) *subster { … }
func (subst *subster) typ(t types.Type) (res types.Type) { … }
func (subst *subster) types(ts []types.Type) []types.Type { … }
func (subst *subster) tuple(t *types.Tuple) *types.Tuple { … }
type varlist …
type fieldlist …
func (fl fieldlist) At(i int) *types.Var { … }
func (fl fieldlist) Len() int { … }
func (subst *subster) struct_(t *types.Struct) *types.Struct { … }
func (subst *subster) varlist(in varlist) []*types.Var { … }
func (subst *subster) var_(v *types.Var) *types.Var { … }
func (subst *subster) union(u *types.Union) *types.Union { … }
func (subst *subster) interface_(iface *types.Interface) *types.Interface { … }
func (subst *subster) alias(t *types.Alias) types.Type { … }
func (subst *subster) named(t *types.Named) types.Type { … }
func (subst *subster) instantiate(orig types.Type, targs []types.Type) types.Type { … }
func (subst *subster) typelist(l *types.TypeList) []types.Type { … }
func (subst *subster) signature(t *types.Signature) types.Type { … }
func reaches(t types.Type, c map[types.Type]bool) (res bool) { … }