Hi all,

I'm having a very hard time with golang.org/x/tools/go/packages. Spent most
of my evening yesterday trying to understand what's happening here.
Here's my code: https://play.golang.com/p/5L1N0lSaetB

With this very simple code I would expect that the program prints detailed
information about the package path I run it with. But whatever the package,
or module, I try to use this with, the program is killed because it takes
all the memory (~32GB) of my machine in a few seconds, nothing ever gets
printed...

Here's my config:
GO111MODULE=""
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/michel/.cache/go-build"
GOENV="/home/michel/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GOMODCACHE="/home/michel/.go/pkg/mod"
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/michel/.go"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct";
GOROOT="/usr/local/go"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GOVCS=""
GOVERSION="go1.16"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/dev/null"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0
-fdebug-prefix-map=/tmp/go-build3825502007=/tmp/go-build
-gno-record-gcc-switches"


I have tried many, many things yesterday, including:
- changing the `Mode` in the config
- using go/types directly ("can't find import" for the package I'm look to
parse)
- using different importers
- trying to load and parse different packages
- ...

For context, and to avoid any XY problem here, my goal is to parse a
package and find an interface based on its name. Once this interface is
found, I need to range over its method set and generate a structure
implementing this interface, with (maybe not at the beginning but) a lot of
logic, e.g. detect that an interface returns an implementation of itself,
and so on.
I'm working on a tool to generate mock structures from their interface
method set, as a personal project, and this is kind of the most important
part of it (being able to automatically generate the mock).

If anyone would kindly help me find what I'm doing wrong, or at least point
me to useful resources explaining how to fix my problem, I would be
reaaaaaally delighted. This has been a problem for days now... And I can't
find any relevant issue or blog as this is a peculiar context.

Thanks in advance to all that will read this and have a nice day! :D

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAL4P9zzu%2BPcWH%2BkPhTAEgQojjnKHiM_0xm9FJGv%3DfaN2yLCSbg%40mail.gmail.com.

Reply via email to