arena_deep_nest.mx raw

   1  // Regression: arena stack management under deep nesting with interface returns.
   2  
   3  package main
   4  
   5  import "fmt"
   6  
   7  func nest0(s string) (r string) { r = s; return }
   8  
   9  func nest1(s string) (r string) {
  10  	var v fmt.Stringer = nest0(s)
  11  	r = v.String()
  12  	return
  13  }
  14  
  15  func nest2(s string) (r string) {
  16  	var v fmt.Stringer = nest1(s)
  17  	r = v.String()
  18  	return
  19  }
  20  
  21  func nest3(s string) (r string) {
  22  	var v fmt.Stringer = nest2(s)
  23  	r = v.String()
  24  	return
  25  }
  26  
  27  func main() {
  28  	r := nest3("hello")
  29  	println(r)
  30  }
  31