1
0
mirror of https://github.com/mgechev/revive.git synced 2025-11-23 22:04:49 +02:00

fix(1007): return Sel.Name as FuncName when selector is an CallExpr (#1012)

Signed-off-by: lsytj0413 <511121939@qq.com>
This commit is contained in:
Songlin Yang
2024-07-19 16:33:27 +08:00
committed by GitHub
parent a2174a34b3
commit 7ef710a0c2
3 changed files with 23 additions and 3 deletions

View File

@@ -127,6 +127,11 @@ func (*lintAddConstantRule) getFuncName(expr *ast.CallExpr) string {
switch prefix := f.X.(type) {
case *ast.Ident:
return prefix.Name + "." + f.Sel.Name
case *ast.CallExpr:
// If the selector is an CallExpr, like `fn().Info`, we return `.Info` as function name
if f.Sel != nil {
return "." + f.Sel.Name
}
}
case *ast.Ident:
return f.Name

View File

@@ -13,7 +13,7 @@ func TestAddConstant(t *testing.T) {
"allowStrs": "\"\"",
"allowInts": "0,1,2",
"allowFloats": "0.0,1.0",
"ignoreFuncs": "os\\.(CreateFile|WriteFile|Chmod|FindProcess),\\.Println,ignoredFunc",
"ignoreFuncs": "os\\.(CreateFile|WriteFile|Chmod|FindProcess),\\.Println,ignoredFunc,\\.Info",
}}
testRule(t, "add-constant", &rule.AddConstantRule{}, &lint.RuleConfig{

View File

@@ -1,10 +1,25 @@
package fixtures
import (
"context"
"fmt"
"os"
)
type testLogger struct{}
func (l *testLogger) Info(ctx context.Context, msg string) {}
func getLogger() *testLogger {
return &testLogger{}
}
func test1007() {
getLogger().Info(context.Background(), "test1007")
getLogger().Info(context.Background(), "test1007")
getLogger().Info(context.Background(), "test1007")
}
func foo(a float32, b string, c any, d int) {
a = 1.0 // ignore
b = "ignore"