@@ -214,25 +214,7 @@ func visit(pass *analysis.Pass, opts *Options, node ast.Node, stack []ast.Node)
214
214
215
215
name := fn .FullName ()
216
216
217
- if opts .go124 && (name == "log/slog.NewTextHandler" || name == "log/slog.NewJSONHandler" ) {
218
- if sel , ok := call .Args [0 ].(* ast.SelectorExpr ); ok {
219
- if obj := pass .TypesInfo .ObjectOf (sel .Sel ); obj != nil {
220
- if obj .Pkg ().Name () == "io" && obj .Name () == "Discard" {
221
- pass .Report (analysis.Diagnostic {
222
- Pos : call .Pos (),
223
- Message : "use slog.DiscardHandler instead" ,
224
- SuggestedFixes : []analysis.SuggestedFix {{
225
- TextEdits : []analysis.TextEdit {{
226
- Pos : call .Pos (),
227
- End : call .End (),
228
- NewText : []byte ("slog.DiscardHandler" ),
229
- }},
230
- }},
231
- })
232
- }
233
- }
234
- }
235
- }
217
+ checkDiscardHandler (opts , pass , name , call )
236
218
237
219
funcInfo , ok := slogFuncs [name ]
238
220
if ! ok {
@@ -370,6 +352,42 @@ func visit(pass *analysis.Pass, opts *Options, node ast.Node, stack []ast.Node)
370
352
}
371
353
}
372
354
355
+ func checkDiscardHandler (opts * Options , pass * analysis.Pass , name string , call * ast.CallExpr ) {
356
+ if ! opts .go124 {
357
+ return
358
+ }
359
+
360
+ if name != "log/slog.NewTextHandler" && name != "log/slog.NewJSONHandler" {
361
+ return
362
+ }
363
+
364
+ sel , ok := call .Args [0 ].(* ast.SelectorExpr )
365
+ if ! ok {
366
+ return
367
+ }
368
+
369
+ obj := pass .TypesInfo .ObjectOf (sel .Sel )
370
+ if obj == nil {
371
+ return
372
+ }
373
+
374
+ if obj .Pkg ().Name () != "io" || obj .Name () != "Discard" {
375
+ return
376
+ }
377
+
378
+ pass .Report (analysis.Diagnostic {
379
+ Pos : call .Pos (),
380
+ Message : "use slog.DiscardHandler instead" ,
381
+ SuggestedFixes : []analysis.SuggestedFix {{
382
+ TextEdits : []analysis.TextEdit {{
383
+ Pos : call .Pos (),
384
+ End : call .End (),
385
+ NewText : []byte ("slog.DiscardHandler" ),
386
+ }},
387
+ }},
388
+ })
389
+ }
390
+
373
391
func isGlobalLoggerUsed (info * types.Info , call ast.Expr ) bool {
374
392
sel , ok := call .(* ast.SelectorExpr )
375
393
if ! ok {
0 commit comments