From 0abb2981360f912786371b325f181871cf534f6a Mon Sep 17 00:00:00 2001 From: Ethan Reesor Date: Wed, 13 Jul 2022 21:10:10 -0500 Subject: [PATCH] staticcheck: fix generics (#2976) Co-authored-by: Fernandez Ludovic --- .../goanalysis/runner_loadingpackage.go | 9 +------- .../goanalysis/runner_loadingpackage_ti.go | 21 +++++++++++++++++++ .../runner_loadingpackage_ti_go117.go | 20 ++++++++++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) create mode 100644 pkg/golinters/goanalysis/runner_loadingpackage_ti.go create mode 100644 pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go diff --git a/pkg/golinters/goanalysis/runner_loadingpackage.go b/pkg/golinters/goanalysis/runner_loadingpackage.go index 1ac6b83e30de..0a9653b8d20c 100644 --- a/pkg/golinters/goanalysis/runner_loadingpackage.go +++ b/pkg/golinters/goanalysis/runner_loadingpackage.go @@ -121,14 +121,7 @@ func (lp *loadingPackage) loadFromSource(loadMode LoadMode) error { pkg.IllTyped = true - pkg.TypesInfo = &types.Info{ - Types: make(map[ast.Expr]types.TypeAndValue), - Defs: make(map[*ast.Ident]types.Object), - Uses: make(map[*ast.Ident]types.Object), - Implicits: make(map[ast.Node]types.Object), - Scopes: make(map[ast.Node]*types.Scope), - Selections: make(map[*ast.SelectorExpr]*types.Selection), - } + pkg.TypesInfo = newTypesInfo() importer := func(path string) (*types.Package, error) { if path == unsafePkgName { diff --git a/pkg/golinters/goanalysis/runner_loadingpackage_ti.go b/pkg/golinters/goanalysis/runner_loadingpackage_ti.go new file mode 100644 index 000000000000..798add627074 --- /dev/null +++ b/pkg/golinters/goanalysis/runner_loadingpackage_ti.go @@ -0,0 +1,21 @@ +//go:build go1.18 +// +build go1.18 + +package goanalysis + +import ( + "go/ast" + "go/types" +) + +func newTypesInfo() *types.Info { + return &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Instances: make(map[*ast.Ident]types.Instance), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + } +} diff --git a/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go b/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go new file mode 100644 index 000000000000..096ac97c5f07 --- /dev/null +++ b/pkg/golinters/goanalysis/runner_loadingpackage_ti_go117.go @@ -0,0 +1,20 @@ +//go:build go1.17 && !go1.18 +// +build go1.17,!go1.18 + +package goanalysis + +import ( + "go/ast" + "go/types" +) + +func newTypesInfo() *types.Info { + return &types.Info{ + Types: make(map[ast.Expr]types.TypeAndValue), + Defs: make(map[*ast.Ident]types.Object), + Uses: make(map[*ast.Ident]types.Object), + Implicits: make(map[ast.Node]types.Object), + Scopes: make(map[ast.Node]*types.Scope), + Selections: make(map[*ast.SelectorExpr]*types.Selection), + } +}