]> Cypherpunks repositories - gostls13.git/commitdiff
os: fix type check error in benchmark
authorRuss Cox <rsc@golang.org>
Fri, 20 Apr 2018 14:34:38 +0000 (10:34 -0400)
committerRuss Cox <rsc@golang.org>
Wed, 25 Apr 2018 02:46:08 +0000 (02:46 +0000)
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 <rsc@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/os/env_test.go

index 0198f1925defce70d640814f917f83d9cf15f468..7a45fca132a719a373c7ecfdf79e6c0c7c4e4c43 100644 (file)
@@ -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
        })
 }