| // run | 
 |  | 
 | // Copyright 2020 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. | 
 |  | 
 | // Similar to reflectmethod5.go, but for reflect.Type.MethodByName. | 
 |  | 
 | package main | 
 |  | 
 | import "reflect" | 
 |  | 
 | var called bool | 
 |  | 
 | type foo struct{} | 
 |  | 
 | func (foo) X() { called = true } | 
 |  | 
 | var h = reflect.Type.MethodByName | 
 |  | 
 | func main() { | 
 | 	v := reflect.ValueOf(foo{}) | 
 | 	m, ok := h(v.Type(), "X") | 
 | 	if !ok { | 
 | 		panic("FAIL") | 
 | 	} | 
 | 	f := m.Func.Interface().(func(foo)) | 
 | 	f(foo{}) | 
 | 	if !called { | 
 | 		panic("FAIL") | 
 | 	} | 
 | } |