doesn't handle named types
josharian opened this issue · comments
Josh Bleecher Snyder commented
I'd expect this test to pass:
func TestToFloat64NamedType(t *testing.T) {
type X float64
f := ToFloat64(X(2))
if f != 2.0 {
t.Fatalf("want %#v, got %#v", 2.0, f)
}
}
The fix is pretty easy. Near the beginning of ToFloat64E
, just after the call to indirect
, add something like:
v := reflect.ValueOf(i)
if v.CanFloat() {
return v.Float(), nil
}
I'm filing an issue rather than sending a PR because the proper fix applies this to all conversions, not just floats, and that's a pretty substantive change, so I wanted to discuss first.