Fix an impossible-to-reach `InexactError` in `parse(Int, ::String)` (#47900)
* Fix an impossible-to-reach `InexactError` in `parse(Int, ::String)`
Previously, even though everything was bounded by checks earlier,
this function would have an error path about an `InexactError`
that makes it through LLVM and into assembly. By converting to
`UInt32` before the call, the inner conversion will always succeed.
This is safe, since we know 2 <= `base` <= 62 from the checks at the
start of `tryparse_internal`.
* Add type restriction to `__convert_digit`
Co-authored-by: Sukera <Seelengrab@users.noreply.github.com>