Skip to content

Commit

Permalink
test: add test of select inside generic function
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
randall77 committed Dec 3, 2021
1 parent d20a0bf commit 9ae0b35
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 0 deletions.
15 changes: 15 additions & 0 deletions test/typeparam/select.dir/a.go
Original file line number Diff line number Diff line change
@@ -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
}
}

28 changes: 28 additions & 0 deletions test/typeparam/select.dir/main.go
Original file line number Diff line number Diff line change
@@ -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 changes: 7 additions & 0 deletions test/typeparam/select.go
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 9ae0b35

Please sign in to comment.