1// errorcheck
2
3// Copyright 2009 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
9var c1 chan <- chan int = (chan<- (chan int))(nil)
10var c2 chan <- chan int = (chan (<-chan int))(nil)  // ERROR "chan|incompatible"
11var c3 <- chan chan int = (<-chan (chan int))(nil)
12var c4 chan chan <- int = (chan (chan<- int))(nil)
13
14var c5 <- chan <- chan int = (<-chan (<-chan int))(nil)
15var c6 chan <- <- chan int = (chan<- (<-chan int))(nil)
16var c7 chan <- chan <- int = (chan<- (chan<- int))(nil)
17
18var c8 <- chan <- chan chan int = (<-chan (<-chan (chan int)))(nil)
19var c9 <- chan chan <- chan int = (<-chan (chan<- (chan int)))(nil)
20var c10 chan <- <- chan chan int = (chan<- (<-chan (chan int)))(nil)
21var c11 chan <- chan <- chan int = (chan<- (chan<- (chan int)))(nil)
22var c12 chan chan <- <- chan int = (chan (chan<- (<-chan int)))(nil)
23var c13 chan chan <- chan <- int = (chan (chan<- (chan<- int)))(nil)
24
25var r1 chan<- (chan int) = (chan <- chan int)(nil)
26var r2 chan (<-chan int) = (chan <- chan int)(nil)  // ERROR "chan|incompatible"
27var r3 <-chan (chan int) = (<- chan chan int)(nil)
28var r4 chan (chan<- int) = (chan chan <- int)(nil)
29
30var r5 <-chan (<-chan int) = (<- chan <- chan int)(nil)
31var r6 chan<- (<-chan int) = (chan <- <- chan int)(nil)
32var r7 chan<- (chan<- int) = (chan <- chan <- int)(nil)
33
34var r8 <-chan (<-chan (chan int)) = (<- chan <- chan chan int)(nil)
35var r9 <-chan (chan<- (chan int)) = (<- chan chan <- chan int)(nil)
36var r10 chan<- (<-chan (chan int)) = (chan <- <- chan chan int)(nil)
37var r11 chan<- (chan<- (chan int)) = (chan <- chan <- chan int)(nil)
38var r12 chan (chan<- (<-chan int)) = (chan chan <- <- chan int)(nil)
39var r13 chan (chan<- (chan<- int)) = (chan chan <- chan <- int)(nil)
40