From a4d7d7a4286998e5b7cc598513ec45125cbbf5be Mon Sep 17 00:00:00 2001 From: Denis Isaev Date: Sun, 4 Nov 2018 13:57:05 +0300 Subject: [PATCH] logging for corrupted SSA packages --- pkg/lint/load.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/pkg/lint/load.go b/pkg/lint/load.go index dd04f9c8..9bd136cd 100644 --- a/pkg/lint/load.go +++ b/pkg/lint/load.go @@ -237,6 +237,7 @@ func (cl ContextLoader) loadPackages(ctx context.Context, loadMode packages.Load return retPkgs, nil } +//nolint:gocyclo func (cl ContextLoader) Load(ctx context.Context, linters []linter.Config) (*linter.Context, error) { loadMode := cl.findLoadMode(linters) pkgs, err := cl.loadPackages(ctx, loadMode) @@ -256,6 +257,21 @@ func (cl ContextLoader) Load(ctx context.Context, linters []linter.Config) (*lin var ssaProg *ssa.Program if loadMode == packages.LoadAllSyntax { ssaProg = cl.buildSSAProgram(pkgs) + for _, pkginfo := range prog.InitialPackages() { + if pkginfo == nil { + cl.log.Infof("Pkginfo is nil") + continue + } + if pkginfo.Pkg == nil { + cl.log.Infof("Pkg %#v: types package is nil", *pkginfo) + continue + } + ssaPkg := ssaProg.Package(pkginfo.Pkg) + if ssaPkg == nil { + cl.log.Infof("Pkg %#v: ssaPkg is nil: %#v", *pkginfo, *pkginfo.Pkg) + continue + } + } } astLog := cl.log.Child("astcache")