1// run
2
3// Copyright 2017 The Go Authors. All rights reserved.
4// Use of this source code is governed by a BSD-style
5// license that can be found in the LICENSE file.
6
7// Issue 19710: mishandled defer delete(...)
8
9package main
10
11func main() {
12	if n := len(f()); n != 0 {
13		println("got", n, "want 0")
14		panic("bad defer delete")
15	}
16}
17
18func f() map[int]bool {
19	m := map[int]bool{}
20	for i := 0; i < 3; i++ {
21		m[i] = true
22		defer delete(m, i)
23	}
24	return m
25}
26