I'm not sure what you mean by "The check cannot be made at compile time, only at run time". Are you talking about a language other than Go? Go is statically typed.
edit: I've been talking about compile time errors that prevent potentially dangerous implicit casts from happening. I think you're talking about something else.
If int64 is the default type for int, then any int will be able to contain values not representable as a float64 (you'd need a float80 or float128 to make it work). To safely convert, a run-time check will be needed.
edit: I've been talking about compile time errors that prevent potentially dangerous implicit casts from happening. I think you're talking about something else.