test: add test of select inside generic function

Make sure that we can import/export selects for generics.

Change-Id: Ibf36e98fc574ce9275820aa426b3e6703b0aae6d
Reviewed-on: https://go-review.googlesource.com/c/go/+/369101
Trust: Keith Randall <khr@golang.org>
Trust: Dan Scales <danscales@google.com>
Run-TryBot: Keith Randall <khr@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Dan Scales <danscales@google.com>
This commit is contained in:
Keith Randall 2021-12-03 13:57:25 -08:00
parent d20a0bfc8a
commit 9ae0b35fad
3 changed files with 50 additions and 0 deletions

View file

@ -0,0 +1,15 @@
// 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 a
func F[T any](c, d chan T) T {
select {
case x := <- c:
return x
case x := <- d:
return x
}
}

View file

@ -0,0 +1,28 @@
// 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 main
import (
"sort"
"./a"
)
func main() {
c := make(chan int, 1)
d := make(chan int, 1)
c <- 5
d <- 6
var r [2]int
r[0] = a.F(c, d)
r[1] = a.F(c, d)
sort.Ints(r[:])
if r != [2]int{5, 6} {
panic("incorrect results")
}
}

7
test/typeparam/select.go Normal file
View file

@ -0,0 +1,7 @@
// rundir -G=3
// 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 ignored