var doc … var Analyzer … func run(pass *analysis.Pass) (interface{ … } // checkAtomicAddAssignment walks the atomic.Add* method calls checking // for assigning the return value to the same variable being used in the // operation func checkAtomicAddAssignment(pass *analysis.Pass, left ast.Expr, call *ast.CallExpr) { … }