// run // Copyright 2011 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // Test zero length structs. // Used to not be evaluated. // Issue 2232. package main func recv(c chan interface{}) struct{} { return (<-c).(struct{}) } var m = make(map[interface{}]int) func recv1(c chan interface{}) { defer rec() m[(<-c).(struct{})] = 0 } func rec() { recover() } func main() { c := make(chan interface{}) go recv(c) c <- struct{}{} go recv1(c) c <- struct{}{} }