1// run 2 3// Copyright 2016 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// The linker can prune methods that are not directly called or 8// assigned to interfaces, but only if reflect.Type.Method is 9// never used. Test it here. 10 11package main 12 13import "reflect" 14 15var called = false 16 17type M int 18 19func (m M) UniqueMethodName() { 20 called = true 21} 22 23var v M 24 25func main() { 26 reflect.TypeOf(v).Method(0).Func.Interface().(func(M))(v) 27 if !called { 28 panic("UniqueMethodName not called") 29 } 30} 31