Use checked_sub
to avoid index out of bounds
This commit is contained in:
parent
6184710d08
commit
bae129ac69
@ -488,7 +488,11 @@ impl MiscEarlyLints {
|
|||||||
LitIntType::Unsuffixed => "",
|
LitIntType::Unsuffixed => "",
|
||||||
};
|
};
|
||||||
|
|
||||||
let maybe_last_sep_idx = lit_snip.len() - suffix.len() - 1;
|
let maybe_last_sep_idx = if let Some(val) = lit_snip.len().checked_sub(suffix.len() + 1) {
|
||||||
|
val
|
||||||
|
} else {
|
||||||
|
return; // It's useless so shouldn't lint.
|
||||||
|
};
|
||||||
// Do not lint when literal is unsuffixed.
|
// Do not lint when literal is unsuffixed.
|
||||||
if !suffix.is_empty() && lit_snip.as_bytes()[maybe_last_sep_idx] != b'_' {
|
if !suffix.is_empty() && lit_snip.as_bytes()[maybe_last_sep_idx] != b'_' {
|
||||||
span_lint_and_sugg(
|
span_lint_and_sugg(
|
||||||
@ -502,7 +506,7 @@ impl MiscEarlyLints {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if lit_snip.starts_with("0x") {
|
if lit_snip.starts_with("0x") && maybe_last_sep_idx >= 3 {
|
||||||
let mut seen = (false, false);
|
let mut seen = (false, false);
|
||||||
for ch in lit_snip.as_bytes()[2..=maybe_last_sep_idx].iter() {
|
for ch in lit_snip.as_bytes()[2..=maybe_last_sep_idx].iter() {
|
||||||
match ch {
|
match ch {
|
||||||
@ -546,7 +550,11 @@ impl MiscEarlyLints {
|
|||||||
}
|
}
|
||||||
} else if let LitKind::Float(_, LitFloatType::Suffixed(float_ty)) = lit.kind {
|
} else if let LitKind::Float(_, LitFloatType::Suffixed(float_ty)) = lit.kind {
|
||||||
let suffix = float_ty.name_str();
|
let suffix = float_ty.name_str();
|
||||||
let maybe_last_sep_idx = lit_snip.len() - suffix.len() - 1;
|
let maybe_last_sep_idx = if let Some(val) = lit_snip.len().checked_sub(suffix.len() + 1) {
|
||||||
|
val
|
||||||
|
} else {
|
||||||
|
return; // It's useless so shouldn't lint.
|
||||||
|
};
|
||||||
if lit_snip.as_bytes()[maybe_last_sep_idx] != b'_' {
|
if lit_snip.as_bytes()[maybe_last_sep_idx] != b'_' {
|
||||||
span_lint_and_sugg(
|
span_lint_and_sugg(
|
||||||
cx,
|
cx,
|
||||||
|
Loading…
Reference in New Issue
Block a user