Skip to content

Commit a6af86b

Browse files
authored
fix: lose global var function call (cloudwego#98)
1 parent d552283 commit a6af86b

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

lang/golang/parser/ctx.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,14 @@ func (ctx *fileContext) GetMod(impt string) (string, error) {
142142
if isSysPkg(impt) {
143143
return "", errSysImport
144144
}
145+
146+
// fileContext 中的 import 信息只有**当前文件的引用路径**,但是存在一种场景就是实际调用的节点在另外的一个Package,导致漏解析
147+
// 常见于"链式调用"、"另一个 pkg 的全局变量的类型在另外一个 pkg 下"
148+
if ctx.module != nil && ctx.module.Packages != nil {
149+
if _, exist := ctx.module.Packages[impt]; exist {
150+
return ctx.module.Name, nil
151+
}
152+
}
145153
for _, ims := range ctx.imports.ProjectImports {
146154
if ims == impt {
147155
return ctx.module.Name, nil

0 commit comments

Comments
 (0)