| // 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{}{} | 
 | } |