Deduplicate custom linter analyzer scaffolding - #50700
Conversation
Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Centralizes custom linter analyzer scaffolding to resolve #50697 while preserving specialized cursor-based traversal.
Changes:
- Adds shared analyzer factories with standard dependencies and URLs.
- Adds reusable preorder traversal setup.
- Migrates 62 linters while retaining specialized traversal where required.
Show a summary per file
| File | Description |
|---|---|
pkg/linters/appendbytestring/appendbytestring.go |
Uses shared factory and preorder helper. |
pkg/linters/appendoneelement/appendoneelement.go |
Uses shared factory and preorder helper. |
pkg/linters/bytesbufferstring/bytesbufferstring.go |
Uses shared factory and preorder helper. |
pkg/linters/bytescomparestring/bytescomparestring.go |
Uses shared factory and preorder helper. |
pkg/linters/contextcancelnotdeferred/contextcancelnotdeferred.go |
Uses shared factory and preorder helper. |
pkg/linters/ctxbackground/ctxbackground.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/deferinloop/deferinloop.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/errorfwrapv/errorfwrapv.go |
Uses shared factory and preorder helper. |
pkg/linters/errormessage/errormessage.go |
Uses shared factory and preorder helper. |
pkg/linters/errortypeassertion/errortypeassertion.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/errstringmatch/errstringmatch.go |
Uses shared factory and preorder helper. |
pkg/linters/excessivefuncparams/excessivefuncparams.go |
Uses shared factory and preorder helper. |
pkg/linters/execcommandwithoutcontext/execcommandwithoutcontext.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/fileclosenotdeferred/fileclosenotdeferred.go |
Uses shared factory and preorder helper. |
pkg/linters/fmterrorfnoverbs/fmterrorfnoverbs.go |
Uses shared factory and preorder helper. |
pkg/linters/fprintlnsprintf/fprintlnsprintf.go |
Uses shared factory and preorder helper. |
pkg/linters/goroutinemissingrecover/goroutinemissingrecover.go |
Uses shared factory and preorder helper. |
pkg/linters/hardcodedfilepath/hardcodedfilepath.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/httpnoctx/httpnoctx.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/httprespbodyclose/httprespbodyclose.go |
Uses shared factory and preorder helper. |
pkg/linters/httpstatuscode/httpstatuscode.go |
Uses shared factory; preserves specialized traversal. |
pkg/linters/internal/analyzerutil/analyzerutil.go |
Adds analyzer factories and preorder bootstrap. |
pkg/linters/internal/analyzerutil/analyzerutil_test.go |
Tests metadata, URLs, and dependencies. |
pkg/linters/ioutildeprecated/ioutildeprecated.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/jsonmarshalignoredeerror/jsonmarshalignoredeerror.go |
Uses shared factory and preorder helper. |
pkg/linters/largefunc/largefunc.go |
Uses shared factory and preorder helper. |
pkg/linters/lenstringsplit/lenstringsplit.go |
Uses shared factory and preorder helper. |
pkg/linters/lenstringzero/lenstringzero.go |
Uses shared factory and preorder helper. |
pkg/linters/logfatallibrary/logfatallibrary.go |
Uses shared factory and preorder helper. |
pkg/linters/manualmutexunlock/manualmutexunlock.go |
Uses shared factory and preorder helper. |
pkg/linters/mapclearloop/mapclearloop.go |
Uses shared factory and preorder helper. |
pkg/linters/mapdeletecheck/mapdeletecheck.go |
Uses shared factory and preorder helper. |
pkg/linters/nilctxpassed/nilctxpassed.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/osexitinlibrary/osexitinlibrary.go |
Uses shared factory and preorder helper. |
pkg/linters/osgetenvlibrary/osgetenvlibrary.go |
Uses shared factory and preorder helper. |
pkg/linters/ossetenvlibrary/ossetenvlibrary.go |
Uses shared factory and preorder helper. |
pkg/linters/panic-in-library-code/panic-in-library-code.go |
Uses path-aware factory and cursor traversal. |
pkg/linters/rawloginlib/rawloginlib.go |
Uses shared factory and preorder helper. |
pkg/linters/regexpcompileinfunction/regexpcompileinfunction.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/regexpdynamicpattern/regexpdynamicpattern.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/seenmapbool/seenmapbool.go |
Uses shared factory and preorder helper. |
pkg/linters/sortslice/sortslice.go |
Uses shared factory; preserves specialized traversal. |
pkg/linters/sprintfbool/sprintfbool.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/sprintferrdot/sprintferrdot.go |
Uses shared factory and preorder helper. |
pkg/linters/sprintferrorsnew/sprintferrorsnew.go |
Uses shared factory and preorder helper. |
pkg/linters/sprintfint/sprintfint.go |
Uses shared factory and preorder helper. |
pkg/linters/strconvparseignorederror/strconvparseignorederror.go |
Uses shared factory and preorder helper. |
pkg/linters/stringbytesroundtrip/stringbytesroundtrip.go |
Uses shared factory and preorder helper. |
pkg/linters/stringreplaceminusone/stringreplaceminusone.go |
Uses shared factory and preorder helper. |
pkg/linters/stringsconcatloop/stringsconcatloop.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/stringscountcontains/stringscountcontains.go |
Uses shared factory and preorder helper. |
pkg/linters/stringsindexcontains/stringsindexcontains.go |
Uses shared factory and preorder helper. |
pkg/linters/stringsindexhasprefix/stringsindexhasprefix.go |
Uses shared factory and preorder helper. |
pkg/linters/stringsjoinone/stringsjoinone.go |
Uses shared factory and preorder helper. |
pkg/linters/timeafterleak/timeafterleak.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/timenowsub/timenowsub.go |
Uses shared factory and preorder helper. |
pkg/linters/timesleepnocontext/timesleepnocontext.go |
Uses shared factory; preserves cursor traversal. |
pkg/linters/tolowerequalfold/tolowerequalfold.go |
Uses shared factory and preorder helper. |
pkg/linters/trimleftright/trimleftright.go |
Uses shared factory and preorder helper. |
pkg/linters/uncheckedflushreturn/uncheckedflushreturn.go |
Uses shared factory and preorder helper. |
pkg/linters/uncheckedtypeassertion/uncheckedtypeassertion.go |
Uses shared factory and preorder helper. |
pkg/linters/walkfuncerrshadow/walkfuncerrshadow.go |
Uses shared factory and preorder helper. |
pkg/linters/wgdonenotdeferred/wgdonenotdeferred.go |
Uses shared factory and preorder helper. |
pkg/linters/writebytestring/writebytestring.go |
Uses shared factory and preorder helper. |
Review details
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 64/64 changed files
- Comments generated: 0
- Review effort level: Balanced
|
@copilot please review the latest PR feedback, refresh this branch if it is behind
Run: https://github.com/github/gh-aw/actions/runs/31055742237
|
Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
Fixed. The CI failure was caused by |
|
@copilot thanks for the follow-up. CI appears complete now. Please run the Run: https://github.com/github/gh-aw/actions/runs/31057198185
|
|
🎉 This pull request is included in a new release. Release: |
Custom linters repeated analyzer metadata, default dependencies, repository URLs, and inspector traversal setup across dozens of packages. This centralizes the shared wiring while preserving specialized traversal paths.
Shared analyzer utility
internal/analyzerutilfor standard analyzer construction.inspect,nolint, andfilecheckdependencies.Shared traversal bootstrap
Linter migration