mirror of
https://github.com/astral-sh/ruff.git
synced 2025-07-19 02:55:20 +00:00
remove several uses of unsafe
(#8600)
This PR removes several uses of `unsafe`. I generally limited myself to low hanging fruit that I could see. There are still a few remaining uses of `unsafe` that looked a bit more difficult to remove (if possible at all). But this gets rid of a good chunk of them. I put each `unsafe` removal into its own commit with a justification for why I did it. So I would encourage reviewing this PR commit-by-commit. That way, we can legislate them independently. It's no problem to drop a commit if we feel the `unsafe` should stay in that case.
This commit is contained in:
parent
578ddf1bb1
commit
f585e3e2dc
10 changed files with 69 additions and 83 deletions
|
@ -120,10 +120,8 @@ impl<'a> StringParser<'a> {
|
|||
len += 1;
|
||||
}
|
||||
|
||||
// SAFETY: radix_bytes is always going to be in the ASCII range.
|
||||
#[allow(unsafe_code)]
|
||||
let radix_str = unsafe { std::str::from_utf8_unchecked(&radix_bytes[..len]) };
|
||||
|
||||
// OK because radix_bytes is always going to be in the ASCII range.
|
||||
let radix_str = std::str::from_utf8(&radix_bytes[..len]).expect("ASCII bytes");
|
||||
let value = u32::from_str_radix(radix_str, 8).unwrap();
|
||||
char::from_u32(value).unwrap()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue