| // compile |
| |
| // Copyright 2012 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 4323: inlining of functions with local variables |
| // forgets to typecheck the declarations in the inlined copy. |
| |
| package main |
| |
| type reader struct { |
| C chan T |
| } |
| |
| type T struct{ C chan []byte } |
| |
| var r = newReader() |
| |
| func newReader() *reader { return new(reader) } |
| |
| func (r *reader) Read(n int) ([]byte, error) { |
| req := T{C: make(chan []byte)} |
| r.C <- req |
| return <-req.C, nil |
| } |
| |
| func main() { |
| s, err := r.Read(1) |
| _, _ = s, err |
| } |