func newPackageFrom(bpkg *build.Package, p *types.Package) (*bind.Package, error) { var pkgast *ast.Package pkgs, err := parser.ParseDir(fset, bpkg.Dir, nil, parser.ParseComments) if err != nil { return nil, err } pkgast = pkgs[p.Name()] if pkgast == nil { return nil, fmt.Errorf("gopy: could not find AST for package %q", p.Name()) } pkgdoc := doc.New(pkgast, bpkg.ImportPath, 0) return bind.NewPackage(p, pkgdoc) }
func newPackage(files []*ast.File, conf *loader.Config, pkg *build.Package) (*bind.Package, error) { conf.CreateFromFiles(pkg.ImportPath, files...) program, err := conf.Load() if err != nil { return nil, err } p := program.Created[0].Pkg var pkgast *ast.Package pkgs, err := parser.ParseDir(fset, pkg.Dir, nil, parser.ParseComments) if err != nil { return nil, err } pkgast = pkgs[p.Name()] pkgdoc := doc.New(pkgast, pkg.ImportPath, 0) return bind.NewPackage(p, pkgdoc), err }