// 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]) } }