mirror of
https://github.com/golang/go
synced 2024-09-04 23:44:16 +00:00
![Robert Griesemer](/assets/img/avatar_default.png)
The existing code used Type.String() to obtain the name of a type; specifically type reflect.Method in this case. However, Type.String() formatting is intended for error messages and uses the format pkgpath.name instead of pkgname.name if a package (in this case package reflect) is imported multiple times. As a result, the reflect.Method type detection failed under peculiar circumstances (see the included test case). Thanks to https://github.com/ericlagergren for tracking down an easy way to make the bug disappear (which in turn directly led to the underlying cause). Fixes #19028. Change-Id: I1b9c5dfd183260a9be74969fe916a94146fc36da Reviewed-on: https://go-review.googlesource.com/45777 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
14 lines
454 B
Go
14 lines
454 B
Go
// rundir
|
|
|
|
// Copyright 2017 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.
|
|
|
|
// This test failed when the compiler didn't use the
|
|
// correct code to identify the type reflect.Method.
|
|
// The failing code relied on Type.String() which had
|
|
// formatting that depended on whether a package (in
|
|
// this case "reflect") was imported more than once.
|
|
|
|
package ignored
|