// Copyright 2021 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.

package p

type C0 interface{ int }
type C1 interface{ chan int }
type C2 interface{ chan int | <-chan int }
type C3 interface{ chan int | chan float32 }
type C4 interface{ chan int | chan<- int }
type C5[T any] interface{ ~chan T | chan<- T }

func _[T any](ch T) {
	ch /* ERROR cannot send to non-channel */ <- 0
}

func _[T C0](ch T) {
	ch /* ERROR cannot send to non-channel */ <- 0
}

func _[T C1](ch T) {
	ch <- 0
}

func _[T C2](ch T) {
	ch /* ERROR cannot send to receive-only channel */ <- 0
}

func _[T C3](ch T) {
	ch /* ERROR channels of ch .* must have the same element type */ <- 0
}

func _[T C4](ch T) {
	ch <- 0
}

func _[T C5[X], X any](ch T, x X) {
	ch <- x
}
