mirror of
https://github.com/golang/go
synced 2024-11-23 00:40:08 -07:00
reflect: explain why convertible or comparable types may still panic
Conversions of slices to arrays may panic since the slice is too short. Comparibility of interfaces may panic since the underlying value is incomparable. This is a follow-up to CL 301652 Change-Id: Ia5d84a6e556a7b82c39add4be93ed7463e63cc8d Reviewed-on: https://go-review.googlesource.com/c/go/+/327589 Trust: Joe Tsai <joetsai@digital-static.net> Trust: Joe Tsai <thebrokentoaster@gmail.com> Run-TryBot: Joe Tsai <thebrokentoaster@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Josh Bleecher Snyder <josharian@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Reviewed-by: Katie Hockman <katie@golang.org> Reviewed-by: Matthew Dempsky <mdempsky@google.com>
This commit is contained in:
parent
7841cb14d9
commit
cf4e3e3d3b
@ -107,10 +107,14 @@ type Type interface {
|
|||||||
|
|
||||||
// ConvertibleTo reports whether a value of the type is convertible to type u.
|
// ConvertibleTo reports whether a value of the type is convertible to type u.
|
||||||
// Even if ConvertibleTo returns true, the conversion may still panic.
|
// Even if ConvertibleTo returns true, the conversion may still panic.
|
||||||
|
// For example, a slice of type []T is convertible to *[N]T,
|
||||||
|
// but the conversion will panic if its length is less than N.
|
||||||
ConvertibleTo(u Type) bool
|
ConvertibleTo(u Type) bool
|
||||||
|
|
||||||
// Comparable reports whether values of this type are comparable.
|
// Comparable reports whether values of this type are comparable.
|
||||||
// Even if Comparable returns true, the comparison may still panic.
|
// Even if Comparable returns true, the comparison may still panic.
|
||||||
|
// For example, values of interface type are comparable,
|
||||||
|
// but the comparison will panic if their dynamic type is not comparable.
|
||||||
Comparable() bool
|
Comparable() bool
|
||||||
|
|
||||||
// Methods applicable only to some types, depending on Kind.
|
// Methods applicable only to some types, depending on Kind.
|
||||||
|
Loading…
Reference in New Issue
Block a user