From 27e76fae2ee2d84dc7db63af1d9ed7358ba35b7a Mon Sep 17 00:00:00 2001 From: Taras Madan Date: Mon, 11 Nov 2024 11:41:38 +0100 Subject: vendor: update --- .../loggercheck/internal/bytebufferpool/pool.go | 22 -------------- .../loggercheck/internal/checkers/checker.go | 3 +- .../loggercheck/internal/checkers/common.go | 7 ++--- .../loggercheck/internal/checkers/filter.go | 35 ++++++++++++++++++++++ .../loggercheck/internal/checkers/printf/printf.go | 2 +- .../loggercheck/internal/checkers/slog.go | 19 ++++++++++++ .../timonwong/loggercheck/internal/checkers/zap.go | 31 ++++--------------- .../timonwong/loggercheck/internal/rules/rules.go | 5 +--- 8 files changed, 64 insertions(+), 60 deletions(-) delete mode 100644 vendor/github.com/timonwong/loggercheck/internal/bytebufferpool/pool.go create mode 100644 vendor/github.com/timonwong/loggercheck/internal/checkers/filter.go create mode 100644 vendor/github.com/timonwong/loggercheck/internal/checkers/slog.go (limited to 'vendor/github.com/timonwong/loggercheck/internal') diff --git a/vendor/github.com/timonwong/loggercheck/internal/bytebufferpool/pool.go b/vendor/github.com/timonwong/loggercheck/internal/bytebufferpool/pool.go deleted file mode 100644 index 9d88d21c4..000000000 --- a/vendor/github.com/timonwong/loggercheck/internal/bytebufferpool/pool.go +++ /dev/null @@ -1,22 +0,0 @@ -package bytebufferpool - -import ( - "bytes" - "sync" -) - -var pool = sync.Pool{ - New: func() interface{} { - return new(bytes.Buffer) - }, -} - -func Get() *bytes.Buffer { - buf := pool.Get().(*bytes.Buffer) - buf.Reset() - return buf -} - -func Put(buf *bytes.Buffer) { - pool.Put(buf) -} diff --git a/vendor/github.com/timonwong/loggercheck/internal/checkers/checker.go b/vendor/github.com/timonwong/loggercheck/internal/checkers/checker.go index 5615636ef..5fa1cfb2c 100644 --- a/vendor/github.com/timonwong/loggercheck/internal/checkers/checker.go +++ b/vendor/github.com/timonwong/loggercheck/internal/checkers/checker.go @@ -29,8 +29,7 @@ func ExecuteChecker(c Checker, pass *analysis.Pass, call CallContext, cfg Config nparams := params.Len() // variadic => nonzero startIndex := nparams - 1 - lastArg := params.At(nparams - 1) - iface, ok := lastArg.Type().(*types.Slice).Elem().(*types.Interface) + iface, ok := types.Unalias(params.At(startIndex).Type().(*types.Slice).Elem()).(*types.Interface) if !ok || !iface.Empty() { return // final (args) param is not ...interface{} } diff --git a/vendor/github.com/timonwong/loggercheck/internal/checkers/common.go b/vendor/github.com/timonwong/loggercheck/internal/checkers/common.go index 42cbd0193..977f5d70c 100644 --- a/vendor/github.com/timonwong/loggercheck/internal/checkers/common.go +++ b/vendor/github.com/timonwong/loggercheck/internal/checkers/common.go @@ -6,11 +6,10 @@ import ( "go/printer" "go/token" "go/types" + "strings" "unicode/utf8" "golang.org/x/tools/go/analysis" - - "github.com/timonwong/loggercheck/internal/bytebufferpool" ) const ( @@ -31,9 +30,7 @@ func extractValueFromStringArg(pass *analysis.Pass, arg ast.Expr) (value string, func renderNodeEllipsis(fset *token.FileSet, v interface{}) string { const maxLen = 20 - buf := bytebufferpool.Get() - defer bytebufferpool.Put(buf) - + buf := &strings.Builder{} _ = printer.Fprint(buf, fset, v) s := buf.String() if utf8.RuneCountInString(s) > maxLen { diff --git a/vendor/github.com/timonwong/loggercheck/internal/checkers/filter.go b/vendor/github.com/timonwong/loggercheck/internal/checkers/filter.go new file mode 100644 index 000000000..a09a54f99 --- /dev/null +++ b/vendor/github.com/timonwong/loggercheck/internal/checkers/filter.go @@ -0,0 +1,35 @@ +package checkers + +import ( + "go/ast" + "go/types" + + "golang.org/x/tools/go/analysis" +) + +func filterKeyAndValues(pass *analysis.Pass, keyAndValues []ast.Expr, objName string) []ast.Expr { + // Check the argument count + filtered := make([]ast.Expr, 0, len(keyAndValues)) + for _, arg := range keyAndValues { + // Skip any object type field we found + switch arg := arg.(type) { + case *ast.CallExpr, *ast.Ident: + typ := types.Unalias(pass.TypesInfo.TypeOf(arg)) + + switch typ := typ.(type) { + case *types.Named: + obj := typ.Obj() + if obj != nil && obj.Name() == objName { + continue + } + + default: + // pass + } + } + + filtered = append(filtered, arg) + } + + return filtered +} diff --git a/vendor/github.com/timonwong/loggercheck/internal/checkers/printf/printf.go b/vendor/github.com/timonwong/loggercheck/internal/checkers/printf/printf.go index b38f46f20..926b57e04 100644 --- a/vendor/github.com/timonwong/loggercheck/internal/checkers/printf/printf.go +++ b/vendor/github.com/timonwong/loggercheck/internal/checkers/printf/printf.go @@ -157,7 +157,7 @@ func (s *formatState) parsePrecision() bool { func parsePrintfVerb(format string) *formatState { state := &formatState{ format: format, - flags: make([]byte, 0, 5), //nolint:gomnd + flags: make([]byte, 0, 5), //nolint:mnd nbytes: 1, // There's guaranteed to be a percent sign. } diff --git a/vendor/github.com/timonwong/loggercheck/internal/checkers/slog.go b/vendor/github.com/timonwong/loggercheck/internal/checkers/slog.go new file mode 100644 index 000000000..5812e6660 --- /dev/null +++ b/vendor/github.com/timonwong/loggercheck/internal/checkers/slog.go @@ -0,0 +1,19 @@ +package checkers + +import ( + "go/ast" + + "golang.org/x/tools/go/analysis" +) + +type Slog struct { + General +} + +func (z Slog) FilterKeyAndValues(pass *analysis.Pass, keyAndValues []ast.Expr) []ast.Expr { + // check slog.Group() constructed group slog.Attr + // since we also check `slog.Group` so it is OK skip here + return filterKeyAndValues(pass, keyAndValues, "Attr") +} + +var _ Checker = (*Slog)(nil) diff --git a/vendor/github.com/timonwong/loggercheck/internal/checkers/zap.go b/vendor/github.com/timonwong/loggercheck/internal/checkers/zap.go index 2356f8348..4dac21f78 100644 --- a/vendor/github.com/timonwong/loggercheck/internal/checkers/zap.go +++ b/vendor/github.com/timonwong/loggercheck/internal/checkers/zap.go @@ -2,7 +2,6 @@ package checkers import ( "go/ast" - "go/types" "golang.org/x/tools/go/analysis" ) @@ -12,31 +11,11 @@ type Zap struct { } func (z Zap) FilterKeyAndValues(pass *analysis.Pass, keyAndValues []ast.Expr) []ast.Expr { - // Check the argument count - filtered := make([]ast.Expr, 0, len(keyAndValues)) - for _, arg := range keyAndValues { - // Skip any zapcore.Field we found - switch arg := arg.(type) { - case *ast.CallExpr, *ast.Ident: - typ := pass.TypesInfo.TypeOf(arg) - switch typ := typ.(type) { - case *types.Named: - obj := typ.Obj() - // This is a strongly-typed field. Consume it and move on. - // Actually it's go.uber.org/zap/zapcore.Field, however for simplicity - // we don't check the import path - if obj != nil && obj.Name() == "Field" { - continue - } - default: - // pass - } - } - - filtered = append(filtered, arg) - } - - return filtered + // Skip any zapcore.Field we found + // This is a strongly-typed field. Consume it and move on. + // Actually it's go.uber.org/zap/zapcore.Field, however for simplicity + // we don't check the import path + return filterKeyAndValues(pass, keyAndValues, "Field") } var _ Checker = (*Zap)(nil) diff --git a/vendor/github.com/timonwong/loggercheck/internal/rules/rules.go b/vendor/github.com/timonwong/loggercheck/internal/rules/rules.go index 27d6ebb27..3ed69b5bd 100644 --- a/vendor/github.com/timonwong/loggercheck/internal/rules/rules.go +++ b/vendor/github.com/timonwong/loggercheck/internal/rules/rules.go @@ -7,8 +7,6 @@ import ( "go/types" "io" "strings" - - "github.com/timonwong/loggercheck/internal/bytebufferpool" ) var ErrInvalidRule = errors.New("invalid rule format") @@ -44,8 +42,7 @@ func (rs *Ruleset) Match(fn *types.Func) bool { } func receiverTypeOf(recvType types.Type) string { - buf := bytebufferpool.Get() - defer bytebufferpool.Put(buf) + buf := &strings.Builder{} var recvNamed *types.Named switch recvType := recvType.(type) { -- cgit mrf-deployment