Config.Check
fset := token.NewFileSet()
file, _ := parser.ParseFile(fset, "x.go", src, 0)
info := &types.Info{
Types: map[ast.Expr]types.TypeAndValue{},
Defs: map[*ast.Ident]types.Object{},
Uses: map[*ast.Ident]types.Object{},
}
conf := types.Config{Importer: importer.Default()}
pkg, err := conf.Check("p", fset, []*ast.File{file}, info)
if err != nil { log.Fatal(err) }
fmt.Println(pkg.Name(), pkg.Scope().Names())