1// run 2 3// Copyright 2018 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 7package main 8 9func main() { 10 m := map[interface{}]int{} 11 k := []int{} 12 13 mustPanic(func() { 14 _ = m[k] 15 }) 16 mustPanic(func() { 17 _, _ = m[k] 18 }) 19 mustPanic(func() { 20 delete(m, k) 21 }) 22} 23 24func mustPanic(f func()) { 25 defer func() { 26 r := recover() 27 if r == nil { 28 panic("didn't panic") 29 } 30 }() 31 f() 32} 33