diff options
author | David Crawshaw <crawshaw@golang.org> | 2016-03-10 19:32:04 -0500 |
---|---|---|
committer | David Crawshaw <crawshaw@golang.org> | 2016-03-11 22:07:02 +0000 |
commit | e2836935bb95e82432b527b1f6a9f3e566150ff8 (patch) | |
tree | bfeb01f15cf3bf3511385c0ccb4ee98cebee8a0a /test/reflectmethod4.go | |
parent | 5aa5db7593537e43b024d65b07f2a9c3379f100e (diff) | |
download | go-e2836935bb95e82432b527b1f6a9f3e566150ff8.tar.gz go-e2836935bb95e82432b527b1f6a9f3e566150ff8.zip |
cmd/link: treat reflect.Value.Method like Call
Fixes #14740
Change-Id: Iad8d971c21977b0a1f4ef55a08bb180a8125e976
Reviewed-on: https://go-review.googlesource.com/20562
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'test/reflectmethod4.go')
-rw-r--r-- | test/reflectmethod4.go | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/test/reflectmethod4.go b/test/reflectmethod4.go new file mode 100644 index 0000000000..037b3dada3 --- /dev/null +++ b/test/reflectmethod4.go @@ -0,0 +1,30 @@ +// 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.Value.Method is +// never used. Test it here. + +package main + +import "reflect" + +var called = false + +type M int + +func (m M) UniqueMethodName() { + called = true +} + +var v M + +func main() { + reflect.ValueOf(v).Method(0).Interface().(func())() + if !called { + panic("UniqueMethodName not called") + } +} |