Colin Cross | 7bb052a | 2015-02-03 12:59:37 -0800 | [diff] [blame] | 1 | // run |
2 | |||||
3 | // Copyright 2014 The Go Authors. All rights reserved. | ||||
4 | // Use of this source code is governed by a BSD-style | ||||
5 | // license that can be found in the LICENSE file. | ||||
6 | |||||
7 | // issue 8039. defer copy(x, <-c) did not rewrite <-c properly. | ||||
8 | |||||
9 | package main | ||||
10 | |||||
11 | func f(s []int) { | ||||
12 | c := make(chan []int, 1) | ||||
13 | c <- []int{1} | ||||
14 | defer copy(s, <-c) | ||||
15 | } | ||||
16 | |||||
17 | func main() { | ||||
18 | x := make([]int, 1) | ||||
19 | f(x) | ||||
20 | if x[0] != 1 { | ||||
21 | println("BUG", x[0]) | ||||
22 | } | ||||
23 | } |