...
Run Format

Source file test/fixedbugs/issue4529.go

Documentation: test/fixedbugs

  // 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 4529: escape analysis crashes on "go f(g())"
  // when g has multiple returns.
  
  package main
  
  type M interface{}
  
  type A struct {
  	a string
  	b chan M
  }
  
  func (a *A) I() (b <-chan M, c chan<- M) {
  	a.b, c = make(chan M), make(chan M)
  	b = a.b
  
  	return
  }
  
  func Init(a string, b *A, c interface {
  	I() (<-chan M, chan<- M)
  }) {
  	b.a = a
  	go b.c(c.I())
  }
  
  func (a *A) c(b <-chan M, _ chan<- M) {}
  

View as plain text