There was several issues: - access to field on pointer to struct from runtime: fix in lookupBinField - assign operation was skipped when performed in a comm clause - the direction of comm clause was wrong if a channel send operation was performed in a body of a receive comm clause Fixes #884.
24 lines
285 B
Go
24 lines
285 B
Go
package main
|
|
|
|
type T struct {
|
|
c1 chan string
|
|
c2 chan string
|
|
}
|
|
|
|
func main() {
|
|
t := &T{}
|
|
t.c2 = make(chan string)
|
|
|
|
go func(c chan string) { c <- "done" }(t.c2)
|
|
|
|
select {
|
|
case msg := <-t.c1:
|
|
println("received from c1:", msg)
|
|
case <-t.c2:
|
|
}
|
|
println("Bye")
|
|
}
|
|
|
|
// Output:
|
|
// Bye
|