From 69e9ae12fcc937e8a2662b630c133f742e5430ef Mon Sep 17 00:00:00 2001 From: Michael Urman Date: Wed, 29 May 2024 10:26:10 -0500 Subject: [PATCH] Explain getRootIdent/ObjectOf/Pos check --- pkg/analyzer/analyzer.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/analyzer/analyzer.go b/pkg/analyzer/analyzer.go index 40ce3b6..90c5333 100644 --- a/pkg/analyzer/analyzer.go +++ b/pkg/analyzer/analyzer.go @@ -55,10 +55,11 @@ func run(pass *analysis.Pass) (interface{}, error) { break } + // allow assignment to non-pointer children of values defined within the loop if lhs := getRootIdent(pass, assignStmt.Lhs[0]); lhs != nil { if obj := pass.TypesInfo.ObjectOf(lhs); obj != nil { if obj.Pos() >= body.Pos() && obj.Pos() < body.End() { - continue + continue // definition is within the loop } } }