in tools/go-agent/tools/dst.go [271:296]
func (i *ImportAnalyzer) analyzeFieldImport(filePath string, exp dst.Expr) {
switch n := exp.(type) {
case *dst.Ident:
return
case *dst.SelectorExpr:
pkgRefName, ok := n.X.(*dst.Ident)
if !ok {
return
}
imports := i.imports[filePath]
if imports == nil {
return
}
spec := imports[pkgRefName.Name]
if spec == nil {
return
}
i.usedImports[pkgRefName.Name] = spec
case *dst.Ellipsis:
i.analyzeFieldImport(filePath, n.Elt)
case *dst.ArrayType:
i.analyzeFieldImport(filePath, n.Elt)
case *dst.StarExpr:
i.analyzeFieldImport(filePath, n.X)
}
}