github.com/xushiwei/go@v0.0.0-20130601165731-2b9d83f45bc9/test/fixedbugs/bug474.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 // Bug in method values: escape analysis was off. 8 9 package main 10 11 import "sync" 12 13 var called = false 14 15 type T struct { 16 once sync.Once 17 } 18 19 func (t *T) M() { 20 called = true 21 } 22 23 func main() { 24 var t T 25 t.once.Do(t.M) 26 if !called { 27 panic("not called") 28 } 29 }