From 3cb707eb5eaf9983ca22b40b87e704bd93c75e71 Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Fri, 19 May 2023 20:17:28 +0200 Subject: Add test for local closure assigned to variable Try to catch local closures not run directly from the `go` statement, but assigned to a variable first. --- testdata/function_local.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 testdata/function_local.go diff --git a/testdata/function_local.go b/testdata/function_local.go new file mode 100644 index 0000000..18eeca5 --- /dev/null +++ b/testdata/function_local.go @@ -0,0 +1,30 @@ +// Copyright (c) 2023 Teddy Wing +// +// This file is part of Gocapturedrefrace. +// +// Gocapturedrefrace is free software: you can redistribute it and/or +// modify it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// Gocapturedrefrace is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Gocapturedrefrace. If not, see +// . + + +package main + +func functionLocal() { + capturedReference := 0 + + funcLocal := func() { + capturedReference += 1 // want "captured reference capturedReference in goroutine closure" + } + + go funcLocal() +} -- cgit v1.2.3