modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/issue5753.go (about)

     1  // run
     2  
     3  // Copyright 2013 The Go Authors. All rights reserved.
     4  // Use of this source code is governed by a BSD-style
     5  // license that can be found in the LICENSE file.
     6  
     7  // issue 5753: bad typecheck info causes escape analysis to
     8  // not run on method thunks.
     9  
    10  package main
    11  
    12  type Thing struct{}
    13  
    14  func (t *Thing) broken(s string) []string {
    15  	foo := [1]string{s}
    16  	return foo[:]
    17  }
    18  
    19  func main() {
    20  	t := &Thing{}
    21  
    22  	f := t.broken
    23  	s := f("foo")
    24  	_ = f("bar")
    25  	if s[0] != "foo" {
    26  		panic(`s[0] != "foo"`)
    27  	}
    28  	
    29  }