I am trying to upgrade my project's golang version from 1.15
to 1.18.1
. I changed the version in go.mod
and executed go mod tidy
command.
Weird thing, I got following error in my main file which has a main
function inside itself:
'main' collides with name declared in this package
It happens for net/http
and syscall
libraries:
net/http
Found several packages [http, main] in '/usr/local/go-1.18.1/src/net/http;/usr/local/go-1.18.1/src/net/http'
syscall
Found several packages [syscall, main] in '/usr/local/go-1.18.1/src/syscall;/usr/local/go-1.18.1/src/syscall'
As I checked the warning was correct and there were main packages in both libraries.
Should I use an alternative library or should I change the way I import them?
Edit 1:
This is an IDE error and I use Goland.
CodePudding user response:
The translation of the relevant comment is:
The reason for the above error: Your Go language version has been upgraded, and the IDE version is too old to support it.
For example, in my case, Go was upgraded to 1.18, and Goland was not upgraded.
So make sure your IDE (GoLand or VSCode) is fully updated (with, for VSCode, the latest gopls
).