From c054bc4fe04240967d463813712fae54c127a7b2 Mon Sep 17 00:00:00 2001 From: sivchari Date: Mon, 29 Nov 2021 02:18:01 +0900 Subject: [PATCH 1/3] add containedctx linter --- go.mod | 1 + go.sum | 2 ++ pkg/golinters/containedctx.go | 23 +++++++++++++++++++++++ pkg/lint/lintersdb/manager.go | 6 ++++++ test/testdata/containedctx.go | 15 +++++++++++++++ 5 files changed, 47 insertions(+) create mode 100644 pkg/golinters/containedctx.go create mode 100644 test/testdata/containedctx.go diff --git a/go.mod b/go.mod index b0f926f0a8c8..ea9e4ed04ecf 100644 --- a/go.mod +++ b/go.mod @@ -73,6 +73,7 @@ require ( github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.21.12 github.com/sirupsen/logrus v1.8.1 + github.com/sivchari/containedctx v1.0.0 github.com/sivchari/tenv v1.4.7 github.com/sonatard/noctx v0.0.1 github.com/sourcegraph/go-diff v0.6.1 diff --git a/go.sum b/go.sum index 5ac6d9bca420..06ad7d45cf46 100644 --- a/go.sum +++ b/go.sum @@ -701,6 +701,8 @@ github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrf github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sivchari/containedctx v1.0.0 h1:xQM7v922emhkPuslBeTH/sMBFyeacXX0MvYoXoTOu/w= +github.com/sivchari/containedctx v1.0.0/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= github.com/sivchari/tenv v1.4.7 h1:FdTpgRlTue5eb5nXIYgS/lyVXSjugU8UUVDwhP1NLU8= github.com/sivchari/tenv v1.4.7/go.mod h1:5nF+bITvkebQVanjU6IuMbvIot/7ReNsUV7I5NbprB0= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= diff --git a/pkg/golinters/containedctx.go b/pkg/golinters/containedctx.go new file mode 100644 index 000000000000..1d73ad7332d8 --- /dev/null +++ b/pkg/golinters/containedctx.go @@ -0,0 +1,23 @@ +package golinters + +import ( + "github.com/sivchari/containedctx" + "golang.org/x/tools/go/analysis" + + "github.com/golangci/golangci-lint/pkg/golinters/goanalysis" +) + +func NewContainedCtx() *goanalysis.Linter { + a := containedctx.Analyzer + + analyzers := []*analysis.Analyzer{ + a, + } + + return goanalysis.NewLinter( + a.Name, + a.Doc, + analyzers, + nil, + ).WithLoadMode(goanalysis.LoadModeSyntax) +} diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index db386a17d58d..688dac93928f 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -179,6 +179,12 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { WithPresets(linter.PresetPerformance, linter.PresetBugs). WithURL("https://github.com/timakin/bodyclose"), + linter.NewConfig(golinters.NewContainedCtx()). + WithSince("1.44.0"). + WithPresets(linter.PresetStyle). + WithLoadForGoAnalysis(). + WithURL("https://github.com/sivchari/containedctx"), + linter.NewConfig(golinters.NewContextCheck()). WithSince("v1.43.0"). WithPresets(linter.PresetBugs). diff --git a/test/testdata/containedctx.go b/test/testdata/containedctx.go new file mode 100644 index 000000000000..ef8fc9fce6db --- /dev/null +++ b/test/testdata/containedctx.go @@ -0,0 +1,15 @@ +// args: -Econtainedctx +package testdata + +import "context" + +type ok struct { + i int + s string +} + +type ng struct { + ctx context.Context // ERROR "found a struct that contains a context.Context field" +} + +type empty struct{} From 7242df337199f787135f0409d2b85f792f0b565d Mon Sep 17 00:00:00 2001 From: sivchari Date: Mon, 6 Dec 2021 17:36:34 +0900 Subject: [PATCH 2/3] update version --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index ea9e4ed04ecf..7599c1d4060a 100644 --- a/go.mod +++ b/go.mod @@ -73,7 +73,7 @@ require ( github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c github.com/shirou/gopsutil/v3 v3.21.12 github.com/sirupsen/logrus v1.8.1 - github.com/sivchari/containedctx v1.0.0 + github.com/sivchari/containedctx v1.0.1 github.com/sivchari/tenv v1.4.7 github.com/sonatard/noctx v0.0.1 github.com/sourcegraph/go-diff v0.6.1 diff --git a/go.sum b/go.sum index 06ad7d45cf46..c34c7182765e 100644 --- a/go.sum +++ b/go.sum @@ -701,8 +701,8 @@ github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrf github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sivchari/containedctx v1.0.0 h1:xQM7v922emhkPuslBeTH/sMBFyeacXX0MvYoXoTOu/w= -github.com/sivchari/containedctx v1.0.0/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= +github.com/sivchari/containedctx v1.0.1 h1:fJq44cX+tD+uT5xGrsg25GwiaY61NGybQk9WWKij3Uo= +github.com/sivchari/containedctx v1.0.1/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= github.com/sivchari/tenv v1.4.7 h1:FdTpgRlTue5eb5nXIYgS/lyVXSjugU8UUVDwhP1NLU8= github.com/sivchari/tenv v1.4.7/go.mod h1:5nF+bITvkebQVanjU6IuMbvIot/7ReNsUV7I5NbprB0= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= From 83f5380d6a6e671bce936381fa726ddecea99efd Mon Sep 17 00:00:00 2001 From: Fernandez Ludovic Date: Mon, 17 Jan 2022 23:53:34 +0100 Subject: [PATCH 3/3] review --- pkg/golinters/containedctx.go | 6 +----- pkg/lint/lintersdb/manager.go | 1 - 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/pkg/golinters/containedctx.go b/pkg/golinters/containedctx.go index 1d73ad7332d8..8592eef1f9ae 100644 --- a/pkg/golinters/containedctx.go +++ b/pkg/golinters/containedctx.go @@ -10,14 +10,10 @@ import ( func NewContainedCtx() *goanalysis.Linter { a := containedctx.Analyzer - analyzers := []*analysis.Analyzer{ - a, - } - return goanalysis.NewLinter( a.Name, a.Doc, - analyzers, + []*analysis.Analyzer{a}, nil, ).WithLoadMode(goanalysis.LoadModeSyntax) } diff --git a/pkg/lint/lintersdb/manager.go b/pkg/lint/lintersdb/manager.go index 688dac93928f..aa0cb6612f04 100644 --- a/pkg/lint/lintersdb/manager.go +++ b/pkg/lint/lintersdb/manager.go @@ -182,7 +182,6 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config { linter.NewConfig(golinters.NewContainedCtx()). WithSince("1.44.0"). WithPresets(linter.PresetStyle). - WithLoadForGoAnalysis(). WithURL("https://github.com/sivchari/containedctx"), linter.NewConfig(golinters.NewContextCheck()).