Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit3207eb2

Browse files
committed
xmlencoderclose: linter that checks xml.Encoder is closed
1 parent043c368 commit3207eb2

File tree

6 files changed

+60
-0
lines changed

6 files changed

+60
-0
lines changed

‎.golangci.reference.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2184,6 +2184,7 @@ linters:
21842184
-whitespace
21852185
-wrapcheck
21862186
-wsl
2187+
-xmlencoderclose
21872188
-zerologlint
21882189

21892190
# Enable all available linters.
@@ -2298,6 +2299,7 @@ linters:
22982299
-whitespace
22992300
-wrapcheck
23002301
-wsl
2302+
-xmlencoderclose
23012303
-zerologlint
23022304

23032305
# Enable presets.

‎go.mod‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ require (
127127

128128
require (
129129
github.com/Masterminds/semverv1.5.0// indirect
130+
github.com/adamdecaf/xmlencoderclosev0.0.0// indirect
130131
github.com/beorn7/perksv1.0.1// indirect
131132
github.com/cespare/xxhash/v2v2.1.2// indirect
132133
github.com/chavacava/garifv0.0.0-20230227094218-b8c73b2037b8// indirect
@@ -147,6 +148,7 @@ require (
147148
github.com/google/go-cmpv0.5.9// indirect
148149
github.com/gostaticanalysis/analysisutilv0.7.1// indirect
149150
github.com/gostaticanalysis/commentv1.4.2// indirect
151+
github.com/gostaticanalysis/sqlrowsv0.0.0-20200307153552-ea5697937269// indirect
150152
github.com/hashicorp/errwrapv1.0.0// indirect
151153
github.com/hashicorp/hclv1.0.0// indirect
152154
github.com/inconshreveable/mousetrapv1.1.0// indirect

‎go.sum‎

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more aboutcustomizing how changed files appear on GitHub.

‎pkg/golinters/xmlencoderclose.go‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package golinters
2+
3+
import (
4+
"github.com/adamdecaf/xmlencoderclose/pkg/analyzer"
5+
"golang.org/x/tools/go/analysis"
6+
7+
"github.com/golangci/golangci-lint/pkg/golinters/goanalysis"
8+
)
9+
10+
funcNewXMLEncoderClose()*goanalysis.Linter {
11+
returngoanalysis.NewLinter(
12+
"xmlencoderclose",
13+
"Checks that xml.Encoder is closed",
14+
[]*analysis.Analyzer{
15+
analyzer.NewAnalyzer(),
16+
},
17+
nil,
18+
).WithLoadMode(goanalysis.LoadModeTypesInfo)
19+
}

‎pkg/lint/lintersdb/manager.go‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -873,6 +873,12 @@ func (m Manager) GetAllSupportedLinterConfigs() []*linter.Config {
873873
WithPresets(linter.PresetStyle).
874874
WithURL("https://github.com/bombsimon/wsl"),
875875

876+
linter.NewConfig(golinters.NewXMLEncoderClose()).
877+
WithSince("v1.54.0").
878+
WithPresets(linter.PresetBugs).
879+
WithLoadForGoAnalysis().
880+
WithURL("https://github.com/adamdecaf/xmlencoderclose"),
881+
876882
linter.NewConfig(golinters.NewZerologLint()).
877883
WithSince("v1.53.0").
878884
WithPresets(linter.PresetBugs).

‎test/testdata/xmlencoderclose.go‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//golangcitest:args -Exmlencoderclose
2+
package testdata
3+
4+
import (
5+
"bytes"
6+
"encoding/xml"
7+
)
8+
9+
funcxmlEncoderClose() (string,error) {
10+
typedocumentstruct {
11+
Astring`xml:"a"`
12+
}
13+
14+
varbuf bytes.Buffer
15+
err:=xml.NewEncoder(&buf).Encode(document{// want "Encoder.Close must be called"
16+
A:"abc123",
17+
})
18+
iferr!=nil {
19+
return"",err
20+
}
21+
returnbuf.String(),nil
22+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp