github.com/mh-cbon/go@v0.0.0-20160603070303-9e112a3fe4c0/test/compos.go (about)

     1  // run
     2  
     3  // Copyright 2009 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  // Test that returning &T{} from a function causes an allocation.
     8  
     9  package main
    10  
    11  type T struct {
    12  	int
    13  }
    14  
    15  func f() *T {
    16  	return &T{1}
    17  }
    18  
    19  func main() {
    20  	x := f()
    21  	y := f()
    22  	if x == y {
    23  		panic("not allocating & composite literals")
    24  	}
    25  }