From 7da6a390443d9cb91bff924432d0b0941f732241 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Tue, 28 Nov 2023 14:45:52 +0000 Subject: [PATCH] modifies-value-receiver: warn on slice or map (#943) * modifies-value-receiver: warn on slice or map Assignments which index into the slice or map are already ignored on line 72, and those where the whole receiver is slice or map on line 50. We should not ignore assignments where the member variable is slice or map. Signed-off-by: Bryan Boreham * Remove extra space --------- Signed-off-by: Bryan Boreham Co-authored-by: Denis Voytyuk <5462781+denisvmedia@users.noreply.github.com> --- rule/modifies-value-receiver.go | 5 ----- testdata/modifies-value-receiver.go | 1 + 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/rule/modifies-value-receiver.go b/rule/modifies-value-receiver.go index ae260a9..e9e64b9 100644 --- a/rule/modifies-value-receiver.go +++ b/rule/modifies-value-receiver.go @@ -78,11 +78,6 @@ func (w lintModifiesValRecRule) Visit(node ast.Node) ast.Visitor { if name == "" || name != receiverName { continue } - - if w.skipType(ast.Expr(e.Sel)) { - continue - } - case *ast.Ident: // receiver := ... if e.Name != receiverName { continue diff --git a/testdata/modifies-value-receiver.go b/testdata/modifies-value-receiver.go index e7355a4..b5ae877 100644 --- a/testdata/modifies-value-receiver.go +++ b/testdata/modifies-value-receiver.go @@ -9,5 +9,6 @@ type data struct { func (this data) vmethod() { this.num = 8 // MATCH /suspicious assignment to a by-value method receiver/ *this.key = "v.key" + this.items = make(map[string]bool) // MATCH /suspicious assignment to a by-value method receiver/ this.items["vmethod"] = true }