// run // Copyright 2018 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. package main import ( "runtime" "strings" ) type Func func() func (f Func) Foo() { if f != nil { f() } } func (f Func) Bar() { if f != nil { f() } buf := make([]byte, 4000) n := runtime.Stack(buf, true) s := string(buf[:n]) if strings.Contains(s, "-fm") { panic("wrapper present in stack trace:\n" + s) } } func main() { foo := Func(func() {}) foo = foo.Bar foo.Foo() }