1
0
mirror of https://github.com/golang/go synced 2024-11-18 21:44:45 -07:00

go.tools/go/types: export ConvertibleTo

LGTM=adonovan
R=adonovan
CC=golang-codereviews
https://golang.org/cl/57950043
This commit is contained in:
Robert Griesemer 2014-01-28 14:28:10 -08:00
parent d0efad3082
commit 83cdd9ba10
2 changed files with 8 additions and 2 deletions

View File

@ -229,6 +229,12 @@ func AssignableTo(V, T Type) bool {
return x.assignableTo(nil, T) // config not needed for non-constant x
}
// ConvertibleTo reports whether a value of type V is convertible to a value of type T.
func ConvertibleTo(V, T Type) bool {
x := operand{mode: value, typ: V}
return x.convertibleTo(nil, T) // config not needed for non-constant x
}
// Implements reports whether a value of type V implements T, as follows:
//
// 1) For non-interface types V, or if static is set, V implements T if all

View File

@ -31,7 +31,7 @@ func (check *checker) conversion(x *operand, T Type) {
x.val = exact.MakeString(string(codepoint))
ok = true
}
case x.isConvertible(check.conf, T):
case x.convertibleTo(check.conf, T):
// non-constant conversion
x.mode = value
ok = true
@ -63,7 +63,7 @@ func (check *checker) conversion(x *operand, T Type) {
check.updateExprType(x.expr, final, true)
}
func (x *operand) isConvertible(conf *Config, T Type) bool {
func (x *operand) convertibleTo(conf *Config, T Type) bool {
// "x is assignable to T"
if x.assignableTo(conf, T) {
return true