github.com/JimmyHuang454/JLS-go@v0.0.0-20230831150107-90d536585ba0/internal/types/testdata/fixedbugs/issue47115.go (about)

     1  // Copyright 2021 The Go Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package p
     6  
     7  type C0 interface{ int }
     8  type C1 interface{ chan int }
     9  type C2 interface{ chan int | <-chan int }
    10  type C3 interface{ chan int | chan float32 }
    11  type C4 interface{ chan int | chan<- int }
    12  type C5[T any] interface{ ~chan T | chan<- T }
    13  
    14  func _[T any](ch T) {
    15  	ch <- /* ERROR cannot send to ch .* no core type */ 0
    16  }
    17  
    18  func _[T C0](ch T) {
    19  	ch <- /* ERROR cannot send to non-channel */ 0
    20  }
    21  
    22  func _[T C1](ch T) {
    23  	ch <- 0
    24  }
    25  
    26  func _[T C2](ch T) {
    27  	ch  <-/* ERROR cannot send to receive-only channel */ 0
    28  }
    29  
    30  func _[T C3](ch T) {
    31  	ch <- /* ERROR cannot send to ch .* no core type */ 0
    32  }
    33  
    34  func _[T C4](ch T) {
    35  	ch <- 0
    36  }
    37  
    38  func _[T C5[X], X any](ch T, x X) {
    39  	ch <- x
    40  }