/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/reflectmethod2.go
36 строк
719 B
David Crawshaw
cmd/compile: track reflect.Type.Method in deadcode
12 мар 2016, 00:19
12 мар 2016, 00:19
cc15840
Код
Авторство
О чём код?
// run // Copyright 2016 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. // The linker can prune methods that are not directly called or // assigned to interfaces, but only if reflect.Type.MethodByName is // never used. Test it here. package main import reflect1 "reflect" var called = false type M int func (m M) UniqueMethodName() { called = true } var v M type MyType interface { MethodByName(string) (reflect1.Method, bool) } func main() { var t MyType = reflect1.TypeOf(v) m, _ := t.MethodByName("UniqueMethodName") m.Func.Interface().(func(M))(v) if !called { panic("UniqueMethodName not called") } }