Reputation: 1301
I am writing a project using the Go language with GoLand IDE by Jetbrains.
While writing the code, GoLand shows me an error message such as "unresolved reference"
when the reference do exist and that the program compiles and runs correctly.
Here is a similar (but simpler) example of some code that I have found here on stackoverflow (Go - append to slice in struct) to reproduce this issue.
The same error message appears even though I have implemented the methods just a few lines above.
package main
import (
"fmt"
)
type MyBoxItem struct {
Name string
}
type MyBox struct {
Items []MyBoxItem
}
func (box *MyBox) AddItem(item MyBoxItem) {
box.Items = append(box.Items, item)
}
func main() {
item1 := MyBoxItem{Name: "Test Item 1"}
item2 := MyBoxItem{Name: "Test Item 2"}
box := MyBox{}
box.AddItem(item1)
box.AddItem(item2)
// checking the output
fmt.Println(len(box.Items))
fmt.Println(box.Items)
}
box.AddItem(item1)
and box.AddItem(item2)
are marked red as an error. If I move my cursor above it, it says unresolved reference "AddItem"
. Yet the code compiles and runs. And as this was the solution to an other stackoverflow question, I do not think that the code is wrong. Furthermore I cannot find any mistakes in it.
[EDIT: I load the code from a remote server and edit it locally on my private pc. After finishing my changes, I upload it to the remote server (using GoLands tools like "Browse remote host") and build and compile it there. After trying it out locally with the very same code, the error message sometimes is there and sometimes not. I am totally confused]
Upvotes: 129
Views: 85307
Reputation: 818
strange but switching the git branch from A to X and switching back to A fixes this issue everytime
lets say your branch name is dev and you got a branch main too:
git checkout main
git checkout dev
and thats it :/ it works for me
Upvotes: 0
Reputation: 71
I encountered the same problem and struggled to find a solution online. Most of the suggested fixes didn't work for me. After some experimentation, I compiled a comprehensive list of steps that successfully resolved the issue.
Step 1: Invalidate Cache
Go to File > Invalidate Caches / Restart.
Check all the checkboxes in the pop-up window.
If the issue persists, go to File > Repair IDE.
Select the second option in the pop-up at the bottom right.
This will reopen, reindex, and invalidate the project.
Step 2: Check Go Path
Open settings with Ctrl + Alt + S.
Ensure a proper Go Path is set (delete pkg/ folder in .idea if it exists).
Example: In Linux, use ~/go; in Windows, use /users/{YOUR USERNAME}/go.
Verify Go Modules integration:
Go to Language & Frameworks > Go > Go Modules.
Enable Go module integrations and support automatic vendor.
These steps successfully addressed the "unresolved" interfaces/types issue in my Go project opened in inteliJ. If you've faced similar challenges, give these steps a try for a comprehensive resolution.
Upvotes: 5
Reputation: 4521
File -> Repair IDE and then click next on each step until "Reopen Project" did the trick for me.
Upvotes: 3
Reputation: 11
I found the same issue after i upgrade my goland to 2023.2.4 from 2022.3 on macOS x86, it appear from time to time. Later I found out that the problem was after I formatted the code using CMD + OPTION + L
.
After i go to File -> Invalidate Caches / Restart
, the issue was resolved. I hope it will not appear again :).
Upvotes: 1
Reputation: 346
I had the same problem in Goland2023.2
on MacOS x86 darwin
.
File->Invalidate caches / Restart. DON'T WORK FOR ME
NOTE: For other versions of GoLAnd use yours version number. This is the solution:
Exit GoLand
Go to the Cache files in Mac: /usr/<username>/library/caches/
Find GoLand2023.2
folder and Delete
this folder
Open GoLand Wait for "Indexing Files...".
After this sould work fine.
I hope this solution help's you.
Upvotes: 0
Reputation: 488
If this issue is for tests, be sure that all file in the same package includes the suffix _test
, for example:
- userTest
|_ user_test.go
|_ helper_test.go
Upvotes: 0
Reputation: 91
If your code compiles and runs, you only need to check "Enable Go modules integration" flag ( IDE ultimate version):
Upvotes: 1
Reputation: 137
Today face the same problem using GoLand 2021.3 MacOS.
Fixed it with go to File Menu -> Repaire IDE...
Then it will automatic fixing issues
Upvotes: 4
Reputation: 191
For Mac users, i solved this by setting Custom Tags to 'unix'.
In Preferences > Go > Build Tags & Vendoring
. In the Custom Tags
, input unix
.
I'm using GoLand 2022.1.2
Upvotes: 7
Reputation: 921
Today I faced that problem and I fixed it by enabling go module integration. For that Settings -> Other Settings -> Go Modules then enable go modules integration. This will work if you using go modules in your project.
Upvotes: 45
Reputation: 89
In my case go mod was 1.18
and IDE indexed my project with 1.19
.
At Preferences -> GOROOT
I selected Go 1.18
and problem solved.
Upvotes: 0
Reputation: 502
I had been using go1.19 which threw unreferenced errors with .Close
methods. I download the GoLand 2022.2.4 package and install, issue has been solved.
Upvotes: 0
Reputation: 135
I had the same issue with aws go sdk, changing the Custom Properties (Help -> Edit Custom Properties) helped me. here is the reference to the JetBrains thread https://youtrack.jetbrains.com/issue/GO-5029
idea.max.intellisense.filesize=10000
idea.max.content.load.filesize=20000
Restart the IDE to let the changes take effect.
Upvotes: 0
Reputation: 1779
For me the issue was the version of Golang, I had been using go1.19 which threw unreferenced errors with .Close
methods, switching back to an older version go16.15
helped me resolve this issue.
Upvotes: 4
Reputation: 644
I found best way to fix this issue.
woops woops, fixed
Edit : better way try to use this one in Goland Menu
file -> repair IDE
it will be refresh index module
Upvotes: 43
Reputation: 1975
I had the same issue, I did try invalidates cache, but that did not work.
But the thing worked is just add a below line in your idea.properties file. And then restart IDE.
# custom GoLand properties (expand/override 'bin/idea.properties')
idea.max.intellisense.filesize=100000
This is because, Goland does not index huge packages. But you can force it to do that.
Upvotes: 1
Reputation: 3945
I had a similar issue for gin.WrapH
function utils.go. Tried the Override File Type
option for utils.go in local module path which changed the file as a Go file but had a little cross sign where a tooltip marked that the file is excluded from compilation. The error Unresolved reference
only went away when I selected the file, navigated to File -> File Properties -> Associate with File Type -> Register new file type association
, and chose Go files
Upvotes: 2
Reputation: 392
I faced the same issue when I do bazel run //:gazelle
, I fixed this issue by doing bazel sync (Bazel -> Sync -> Sync Project with BUILD Files
). But you should have the below settings.
(This fix is for Goland IDE, Mac. Of course we should add GOPATH in .bash_profile
or .zshrc
)
Upvotes: 0
Reputation: 313
I'm a bit late to the answer lol but incase anyone is still running into this, all I did was delete the .idea
file and reloaded the project on GoLand (by clicking File -> Open -> file location). Did the trick for me.
Upvotes: 12
Reputation: 1705
In Goland preferences, if you're using the Global GOPATH, check the option "Index entire GOPATH" and hit apply.
Upvotes: 1
Reputation: 357
Goland version 2020.1: I opened a folder with subfolders of golang projects and goland didn't recognize dependencies. I solved this problem setting Project GOPATH
ctrl + alt + s
+
In Project GOPATH~/projects/my-golang-projects
Upvotes: 0
Reputation: 91
I just removed the project from Goland and re-create it from existing files. It was weird but it worked.
Upvotes: 9
Reputation: 9
No option from other comments helped me. I had to switch GO SDK version in Setting -> Go -> GOROOT. Goland automatically downloaded 1.16 beta 1 version and it worked.
Upvotes: 0
Reputation: 161
I'm using go module and it's solved by:
Upvotes: 16
Reputation: 7477
I cannot reproduce the issue in GoLand 2020.2. I suggest upgrading to it.
If that doesn't fix the issue then you can take the following steps to investigate the issue:
Settings/Preferences | Go | GOPATH
?Settings/Preferences | Go | Go Modules
and then use Alt+Enter | Sync packages of <project>
Upvotes: 6
Reputation: 8807
I experienced a similar issue, but it was a lot more prevalent. Even things like fmt.Printf()
were showing as unresolved. Was able to resolve the issue by going to File -> Invalidate Caches / Restart.
Upvotes: 271
Reputation: 652
I had the same problem and it got fix weirdly.So I installed and opened project in vscode
in order to continue coding.It started installing a extension called gopls
. After installation completed I returned to GoLand to close project, but I waited for indexing to complete.Suddenly references were green !
Upvotes: 0