Skip to content

Commit 27a660a

Browse files
committed
stylecheck: don't flag mismatching receiver names in generated code
Updates gh-389
1 parent 46b0e0c commit 27a660a

File tree

4 files changed

+29
-1
lines changed

4 files changed

+29
-1
lines changed

stylecheck/analysis.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ var Analyzers = lintutil.InitializeAnalyzers(Docs, map[string]*analysis.Analyzer
5050
},
5151
"ST1016": {
5252
Run: CheckReceiverNamesIdentical,
53-
Requires: []*analysis.Analyzer{buildssa.Analyzer},
53+
Requires: []*analysis.Analyzer{buildssa.Analyzer, facts.Generated},
5454
},
5555
"ST1017": {
5656
Run: CheckYodaConditions,

stylecheck/lint.go

+4
Original file line numberDiff line numberDiff line change
@@ -287,6 +287,10 @@ func CheckReceiverNamesIdentical(pass *analysis.Pass) (interface{}, error) {
287287
for _, sel := range ms {
288288
fn := sel.Obj().(*types.Func)
289289
recv := fn.Type().(*types.Signature).Recv()
290+
if IsGenerated(pass, recv.Pos()) {
291+
// Don't concern ourselves with methods in generated code
292+
continue
293+
}
290294
if Dereference(recv.Type()) != T.Type() {
291295
// skip embedded methods
292296
continue

stylecheck/testdata/src/CheckReceiverNamesIdentical/CheckReceiverNames.go

+5
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,8 @@ func (x T1) Fn3() {}
99
func (T1) Fn4() {}
1010
func (_ T1) Fn5() {}
1111
func (self T1) Fn6() {}
12+
13+
func (bar T3) Fn2() {} // want `1x "bar", 1x "meow"`
14+
func (meow T3) Fn3() {}
15+
16+
func (bar T4) Fn2() {}

stylecheck/testdata/src/CheckReceiverNamesIdentical/generated.go

+19
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)