// 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 various parsing cases that are a little // different now that send is a statement, not an expression. package main func main() { chanchan() sendprec() } func chanchan() { cc := make(chan chan int, 1) c := make(chan int, 1) cc <- c select { case <-cc <- 2: default: panic("nonblock") } if <-c != 2 { panic("bad receive") } } func sendprec() { c := make(chan bool, 1) c <- false || true // not a syntax error: same as c <- (false || true) if !<-c { panic("sent false") } }