I think we might need three different numeric conversions, here: one that only widens (I strongly believe this should be an operator or set of methods, not happen implicitly), one that always does a checked conversion and returns an option, and one that functions analogously to the arithmetic operators, panicking for lossy conversions in debug builds and truncating in release builds. These would, of course, be in addition to a bitwise cast.
I’d be fine with methods. For bikeshedding purposes, what about cast for panicking in debug builds, checked_cast for returning an option, widen for guaranteed-lossless widening, and truncate for bitwise casting? I think it would be convenient for all of them to infer their target type, and type ascription can be used where being explicit is desirable.