Home | History | Annotate | Download | only in test
      1 // run
      2 
      3 // Copyright 2011 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 // Test zero length structs.
      8 // Used to not be evaluated.
      9 // Issue 2232.
     10 
     11 package main
     12 
     13 func recv(c chan interface{}) struct{} {
     14 	return (<-c).(struct{})
     15 }
     16 
     17 var m = make(map[interface{}]int)
     18 
     19 func recv1(c chan interface{}) {
     20 	defer rec()
     21 	m[(<-c).(struct{})] = 0
     22 }
     23 
     24 func rec() {
     25 	recover()
     26 }
     27 
     28 func main() {
     29 	c := make(chan interface{})
     30 	go recv(c)
     31 	c <- struct{}{}
     32 	go recv1(c)
     33 	c <- struct{}{}
     34 }
     35