@@ -65,13 +65,15 @@ func (checker Formatter) checkNotFmtAssertion(pass *analysis.Pass, call *CallMet
65
65
return nil
66
66
}
67
67
68
+ fFunc := call .Fn .Name + "f"
69
+
68
70
if msgAndArgsPos == len (call .ArgsRaw )- 1 {
69
71
msgAndArgs := call .ArgsRaw [msgAndArgsPos ]
70
72
if args , ok := isFmtSprintfCall (pass , msgAndArgs ); ok {
71
73
if checker .requireFFuncs {
72
- msg := fmt .Sprintf ("remove unnecessary fmt.Sprintf and use %s.%s" , call .SelectorXStr , call . Fn . Name + "f" )
74
+ msg := fmt .Sprintf ("remove unnecessary fmt.Sprintf and use %s.%s" , call .SelectorXStr , fFunc )
73
75
return newDiagnostic (checker .Name (), call , msg ,
74
- newSuggestedFuncReplacement (call , call . Fn . Name + "f" , analysis.TextEdit {
76
+ newSuggestedFuncReplacement (call , fFunc , analysis.TextEdit {
75
77
Pos : msgAndArgs .Pos (),
76
78
End : msgAndArgs .End (),
77
79
NewText : formatAsCallArgs (pass , args ... ),
@@ -83,21 +85,20 @@ func (checker Formatter) checkNotFmtAssertion(pass *analysis.Pass, call *CallMet
83
85
}
84
86
85
87
if checker .requireFFuncs {
86
- return newUseFunctionDiagnostic (checker .Name (), call , call .Fn .Name + "f" ,
87
- newSuggestedFuncReplacement (call , call .Fn .Name + "f" ))
88
+ return newUseFunctionDiagnostic (checker .Name (), call , fFunc , newSuggestedFuncReplacement (call , fFunc ))
88
89
}
89
90
return nil
90
91
}
91
92
92
93
func (checker Formatter ) checkFmtAssertion (pass * analysis.Pass , call * CallMeta ) (result * analysis.Diagnostic ) {
93
- formatIdx := getMsgPosition (call .Fn .Signature )
94
- if formatIdx == 0 {
94
+ formatPos := getMsgPosition (call .Fn .Signature )
95
+ if formatPos < 0 {
95
96
return nil
96
97
}
97
98
98
- msg := call .ArgsRaw [formatIdx ]
99
+ msg := call .ArgsRaw [formatPos ]
99
100
100
- if formatIdx == len (call .ArgsRaw )- 1 {
101
+ if formatPos == len (call .ArgsRaw )- 1 {
101
102
if args , ok := isFmtSprintfCall (pass , msg ); ok {
102
103
return newRemoveSprintfDiagnostic (pass , checker .Name (), call , msg , args )
103
104
}
@@ -115,7 +116,7 @@ func (checker Formatter) checkFmtAssertion(pass *analysis.Pass, call *CallMeta)
115
116
if err != nil {
116
117
return nil
117
118
}
118
- printf .CheckPrintf (pass , call .Call , call .String (), format , formatIdx )
119
+ printf .CheckPrintf (pass , call .Call , call .String (), format , formatPos )
119
120
}
120
121
return result
121
122
}
@@ -159,7 +160,7 @@ func getMsgPosition(sig *types.Signature) int {
159
160
return i
160
161
}
161
162
}
162
- return 0
163
+ return - 1
163
164
}
164
165
165
166
func isFmtSprintfCall (pass * analysis.Pass , expr ast.Expr ) ([]ast.Expr , bool ) {
0 commit comments