// run
// Copyright 2014 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.
// issue 8039. defer copy(x, <-c) did not rewrite <-c properly.
package main
func f(s []int) {
c := make(chan []int, 1)
c <- []int{1}
defer copy(s, <-c)
}
func main() {
x := make([]int, 1)
f(x)
if x[0] != 1 {
println("BUG", x[0])
}
}