diff options
Diffstat (limited to 'src/runtime/map_test.go')
| -rw-r--r-- | src/runtime/map_test.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/runtime/map_test.go b/src/runtime/map_test.go index b12b09eeb6..d1b268bda4 100644 --- a/src/runtime/map_test.go +++ b/src/runtime/map_test.go @@ -875,3 +875,24 @@ func BenchmarkMapDelete(b *testing.B) { b.Run("Int64", runWith(benchmarkMapDeleteInt64, 100, 1000, 10000)) b.Run("Str", runWith(benchmarkMapDeleteStr, 100, 1000, 10000)) } + +func TestDeferDeleteSlow(t *testing.T) { + ks := []complex128{0, 1, 2, 3} + + m := make(map[interface{}]int) + for i, k := range ks { + m[k] = i + } + if len(m) != len(ks) { + t.Errorf("want %d elements, got %d", len(ks), len(m)) + } + + func() { + for _, k := range ks { + defer delete(m, k) + } + }() + if len(m) != 0 { + t.Errorf("want 0 elements, got %d", len(m)) + } +} |
