invalid_from_utf8[_unchecked]: also lint inherent methods
This commit is contained in:
parent
4229b80f50
commit
f53d0f502d
6 changed files with 269 additions and 43 deletions
|
@ -439,11 +439,11 @@ lint_invalid_crate_type_value = invalid `crate_type` value
|
|||
.suggestion = did you mean
|
||||
|
||||
# FIXME: we should ordinalize $valid_up_to when we add support for doing so
|
||||
lint_invalid_from_utf8_checked = calls to `{$method}` with a invalid literal always return an error
|
||||
lint_invalid_from_utf8_checked = calls to `{$method}` with an invalid literal always return an error
|
||||
.label = the literal was valid UTF-8 up to the {$valid_up_to} bytes
|
||||
|
||||
# FIXME: we should ordinalize $valid_up_to when we add support for doing so
|
||||
lint_invalid_from_utf8_unchecked = calls to `{$method}` with a invalid literal are undefined behavior
|
||||
lint_invalid_from_utf8_unchecked = calls to `{$method}` with an invalid literal are undefined behavior
|
||||
.label = the literal was valid UTF-8 up to the {$valid_up_to} bytes
|
||||
|
||||
lint_invalid_nan_comparisons_eq_ne = incorrect NaN comparison, NaN cannot be directly compared to itself
|
||||
|
|
|
@ -70,12 +70,20 @@ impl<'tcx> LateLintPass<'tcx> for InvalidFromUtf8 {
|
|||
sym::str_from_utf8_mut,
|
||||
sym::str_from_utf8_unchecked,
|
||||
sym::str_from_utf8_unchecked_mut,
|
||||
sym::str_inherent_from_utf8,
|
||||
sym::str_inherent_from_utf8_mut,
|
||||
sym::str_inherent_from_utf8_unchecked,
|
||||
sym::str_inherent_from_utf8_unchecked_mut,
|
||||
]
|
||||
.contains(&diag_item)
|
||||
{
|
||||
let lint = |label, utf8_error: Utf8Error| {
|
||||
let method = diag_item.as_str().strip_prefix("str_").unwrap();
|
||||
let method = format!("std::str::{method}");
|
||||
let method = if let Some(method) = method.strip_prefix("inherent_") {
|
||||
format!("str::{method}")
|
||||
} else {
|
||||
format!("std::str::{method}")
|
||||
};
|
||||
let valid_up_to = utf8_error.valid_up_to();
|
||||
let is_unchecked_variant = diag_item.as_str().contains("unchecked");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue