From: Russ Cox Date: Fri, 20 Apr 2018 14:34:38 +0000 (-0400) Subject: os: fix type check error in benchmark X-Git-Tag: go1.11beta1~693 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e9bc0c5d244185ab40c3afe20495d49abaef5feb;p=gostls13.git os: fix type check error in benchmark Previously, 's' was only written to, never read, which is disallowed by the spec. cmd/compile has a bug where it doesn't notice this when a closure is involved, but go/types does notice, which was making "go vet" fail. This CL moves the variable into the closure and also makes sure to use it. Change-Id: I2d83fb6b5c1c9018df03533e966cbdf455f83bf9 Reviewed-on: https://go-review.googlesource.com/108556 Run-TryBot: Russ Cox Reviewed-by: Ian Lance Taylor --- diff --git a/src/os/env_test.go b/src/os/env_test.go index 0198f1925d..7a45fca132 100644 --- a/src/os/env_test.go +++ b/src/os/env_test.go @@ -62,19 +62,24 @@ func TestExpand(t *testing.T) { } } +var global interface{} + func BenchmarkExpand(b *testing.B) { - var s string b.Run("noop", func(b *testing.B) { + var s string b.ReportAllocs() for i := 0; i < b.N; i++ { s = Expand("tick tick tick tick", func(string) string { return "" }) } + global = s }) b.Run("multiple", func(b *testing.B) { + var s string b.ReportAllocs() for i := 0; i < b.N; i++ { s = Expand("$a $a $a $a", func(string) string { return "boom" }) } + global = s }) }