From 09819279dd175a8b2c6de9ab56682bce7b9b7614 Mon Sep 17 00:00:00 2001 From: pytimer Date: Mon, 14 Mar 2022 17:19:20 +0800 Subject: [PATCH] Fix skip cgo error because some depend struct in cgo files --- golist.go | 10 +++------- parser_test.go | 3 +-- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/golist.go b/golist.go index 1fb9b55c4..b8663abde 100644 --- a/golist.go +++ b/golist.go @@ -53,11 +53,6 @@ func (parser *Parser) getAllGoFileInfoFromDepsByList(pkg *build.Package) error { return nil } - // Skip cgo - if pkg.Name == "C" { - return nil - } - srcDir := pkg.Dir var err error for i := range pkg.GoFiles { @@ -67,8 +62,9 @@ func (parser *Parser) getAllGoFileInfoFromDepsByList(pkg *build.Package) error { } } - for i := range pkg.CFiles { - err = parser.parseFile(pkg.ImportPath, filepath.Join(srcDir, pkg.CFiles[i]), nil) + // parse .go source files that import "C" + for i := range pkg.CgoFiles { + err = parser.parseFile(pkg.ImportPath, filepath.Join(srcDir, pkg.CgoFiles[i]), nil) if err != nil { return err } diff --git a/parser_test.go b/parser_test.go index 4a78d4db4..3eedcfc98 100644 --- a/parser_test.go +++ b/parser_test.go @@ -2130,9 +2130,8 @@ func TestParseExternalModels(t *testing.T) { func TestParseGoList(t *testing.T) { searchDir := "testdata/golist" mainAPIFile := "main.go" - p := New() + p := New(ParseUsingGoList(true)) p.ParseDependency = true - p.parseGoList = true err := p.ParseAPI(searchDir, mainAPIFile, defaultParseDepth) assert.NoError(t, err) }