1
votes

This has been bugging me for a long time. I'm using gin-gonic and everytime I try and use go run main.go, this compile error always appears:

cannot use properties.Pong (type func(*"github.com/carlqt/geodude/vendor/github.com/gin-gonic/gin".Context)) as type "github.com/gin-gonic/gin".HandlerFunc in argument to router.RouterGroup.GET

But when I use Visual Studio Code terminal and run the go run, it works.

here's the main.go file https://gist.github.com/carlqt/c5f6b0d127c1ca124cf2fe8d620976a1

And here's the property.go file: https://gist.github.com/carlqt/6edadf1dedc63b4b4e231891cae8e9a5

My project structure looks like this

enter image description here

Edit Adding go env for the terminal in VS Code and my terminal. I will put them on screenshot as to avoid human error

VS Code terminal: enter image description here

iterm2 Terminal: enter image description here

Note The issue can be avoided, as well, if I put the HandlerFunc functions from the properties folder to main.go file.

2
Does go build work ? What argument(s) do you pass to go run both in your terminal and VS Code's.abiosoft
I run go run main.go on both terminal. I will edit my questionFinks
What is value of GO15VENDOREXPERIMENT in both terminal ?abiosoft
They're both 1. I will post the value of go envFinks
For me this has always been a result of packages missing from vendor/, try downloading all unvendored packages with go get -u github.com/kardianos/govendor; cd geodude; govendor fetch +external or similarPlato

2 Answers

1
votes

OK, sorry about all this mess but what worked for me is to uninstall Go and reinstall it again. Previously, Go was installed on my machine using Homebrew. When I reinstalled it, I used google's mac installer. Now all was fine again.

Thanks for helping.

0
votes
go get -u github.com/gin-gonic/gin
govendor add +e