func declTypeName(pkg *types.Package, name string) *types.TypeName { scope := pkg.Scope() if obj := scope.Lookup(name); obj != nil { return obj.(*types.TypeName) } obj := types.NewTypeName(token.NoPos, pkg, name, nil) // a named type may be referred to before the underlying type // is known - set it up types.NewNamed(obj, nil, nil) scope.Insert(obj) return obj }
func makeNamedType(name string, underlying types.Type) *types.Named { obj := types.NewTypeName(token.NoPos, reflectTypesPackage, name, nil) return types.NewNamed(obj, underlying, nil) }