func (c *converter) convertNamed(v *gotypes.Named) *types.Named { if v == nil { return nil } if v, ok := c.converted[v]; ok { return v.(*types.Named) } if gotypes.Universe.Lookup("error").(*gotypes.TypeName).Type().(*gotypes.Named) == v { return types.Universe.Lookup("error").(*types.TypeName).Type().(*types.Named) } typeName := c.convertTypeName(v.Obj()) ret, ok := typeName.Type().(*types.Named) if !ok { ret = types.NewNamed(nil, nil, nil) } c.converted[v] = ret for i := 0; i < v.NumMethods(); i++ { ret.AddMethod(c.convertFunc(v.Method(i))) } ret.SetUnderlying(c.convertType(v.Underlying())) return ret }