现在有 3 个结构体
type A struct {
*B
ccc.C
}
type B struct {
opts *Option
}
package ccc
type C struct {
opts *Option
}
type Option struct {
emlog.Logger // 日志
}
// 测试函数
func (a *A) testMethod() {
a.opts.Logger // 此时 Goland 中 opts 的引用会报错, 提示 Ambiguous reference 'opts' ,但是可以编译 可以运行,因为只能引用 B 里面的 opts ,C 跨包了,是私有的 opts ,但是 Goland 会索引到就很离谱(同事用的 vscode 就没问题)
a.B.opts.Logger // Goland 不会报错
}
各位大佬知道如何配置 goland 解决这个问题吗?
1
danbai 6 天前
清空索引可以吗
|
3
pkoukk 6 天前
我不用 goland 就是因为 go 明明提供了 gopls ,它非不用...非要自己搓一个...
|
4
MoYi123 6 天前
https://youtrack.jetbrains.com/issue/GO-11309/Invalid-Ambiguous-reference-error-with-embedded-structs-and-non-exported-fields
好像就是个没人修的 bug, 建议再去发个帖, 给 jetbrains 点压力. |
7
imherer 2 天前 1
说实话以前还没遇到过类似的问题,但是最近经常遇到各种爆红,结构体点不出来,实际上运行又没问题
|