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