summaryrefslogtreecommitdiffstats
path: root/compiler/rustc_lint/src/invalid_from_utf8.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-07 05:48:48 +0000
commitef24de24a82fe681581cc130f342363c47c0969a (patch)
tree0d494f7e1a38b95c92426f58fe6eaa877303a86c /compiler/rustc_lint/src/invalid_from_utf8.rs
parentReleasing progress-linux version 1.74.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-ef24de24a82fe681581cc130f342363c47c0969a.tar.xz
rustc-ef24de24a82fe681581cc130f342363c47c0969a.zip
Merging upstream version 1.75.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'compiler/rustc_lint/src/invalid_from_utf8.rs')
-rw-r--r--compiler/rustc_lint/src/invalid_from_utf8.rs34
1 files changed, 22 insertions, 12 deletions
diff --git a/compiler/rustc_lint/src/invalid_from_utf8.rs b/compiler/rustc_lint/src/invalid_from_utf8.rs
index e398059ad..0b91b77a9 100644
--- a/compiler/rustc_lint/src/invalid_from_utf8.rs
+++ b/compiler/rustc_lint/src/invalid_from_utf8.rs
@@ -64,8 +64,13 @@ impl<'tcx> LateLintPass<'tcx> for InvalidFromUtf8 {
&& let ExprKind::Path(ref qpath) = path.kind
&& let Some(def_id) = cx.qpath_res(qpath, path.hir_id).opt_def_id()
&& let Some(diag_item) = cx.tcx.get_diagnostic_name(def_id)
- && [sym::str_from_utf8, sym::str_from_utf8_mut,
- sym::str_from_utf8_unchecked, sym::str_from_utf8_unchecked_mut].contains(&diag_item)
+ && [
+ sym::str_from_utf8,
+ sym::str_from_utf8_mut,
+ sym::str_from_utf8_unchecked,
+ sym::str_from_utf8_unchecked_mut,
+ ]
+ .contains(&diag_item)
{
let lint = |label, utf8_error: Utf8Error| {
let method = diag_item.as_str().strip_prefix("str_").unwrap();
@@ -74,13 +79,17 @@ impl<'tcx> LateLintPass<'tcx> for InvalidFromUtf8 {
let is_unchecked_variant = diag_item.as_str().contains("unchecked");
cx.emit_spanned_lint(
- if is_unchecked_variant { INVALID_FROM_UTF8_UNCHECKED } else { INVALID_FROM_UTF8 },
+ if is_unchecked_variant {
+ INVALID_FROM_UTF8_UNCHECKED
+ } else {
+ INVALID_FROM_UTF8
+ },
expr.span,
if is_unchecked_variant {
InvalidFromUtf8Diag::Unchecked { method, valid_up_to, label }
} else {
InvalidFromUtf8Diag::Checked { method, valid_up_to, label }
- }
+ },
)
};
@@ -95,18 +104,19 @@ impl<'tcx> LateLintPass<'tcx> for InvalidFromUtf8 {
{
lint(init.span, utf8_error);
}
- },
+ }
ExprKind::Array(args) => {
- let elements = args.iter().map(|e|{
- match &e.kind {
+ let elements = args
+ .iter()
+ .map(|e| match &e.kind {
ExprKind::Lit(Spanned { node: lit, .. }) => match lit {
LitKind::Byte(b) => Some(*b),
LitKind::Int(b, _) => Some(*b as u8),
- _ => None
- }
- _ => None
- }
- }).collect::<Option<Vec<_>>>();
+ _ => None,
+ },
+ _ => None,
+ })
+ .collect::<Option<Vec<_>>>();
if let Some(elements) = elements
&& let Err(utf8_error) = std::str::from_utf8(&elements)