From 15774da0f161aebd7e068990335494d2e289e852 Mon Sep 17 00:00:00 2001 From: Tommy Muehle Date: Fri, 16 Apr 2021 14:51:06 +0200 Subject: [PATCH] Don't report type conversions in const block declarations, fixes #22 --- checks/argument.go | 8 ++++++-- testdata/src/argument/argument.go | 5 +++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/checks/argument.go b/checks/argument.go index f0c5d71..a0a86e8 100644 --- a/checks/argument.go +++ b/checks/argument.go @@ -41,8 +41,12 @@ func (a *ArgumentAnalyzer) Check(n ast.Node) { case *ast.CallExpr: a.checkCallExpr(expr) case *ast.GenDecl: - if expr.Tok == token.CONST { - pos := a.pass.Fset.Position(expr.TokPos) + if expr.Tok != token.CONST { + return + } + + for _, x := range expr.Specs { + pos := a.pass.Fset.Position(x.Pos()) mu.Lock() constantDefinitions[pos.Filename+":"+strconv.Itoa(pos.Line)] = true diff --git a/testdata/src/argument/argument.go b/testdata/src/argument/argument.go index da08bd9..5aa2926 100644 --- a/testdata/src/argument/argument.go +++ b/testdata/src/argument/argument.go @@ -14,6 +14,11 @@ var MyValue = float32(20) // want "Magic number: 20" const MyConstantValue = float32(20) +const ( + FooBlockTypeConversion = int64(512) + BarBlockTypeConversion = uint8(2) +) + func example() { math.Abs(9.5) // want "Magic number: 9.5" }