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