mirror of
https://github.com/rust-lang/rust.git
synced 2026-05-16 04:55:22 +03:00
changelog: [cast_slice_from_raw_parts]: properly select std/core
Signed-off-by: Zihan <zihanli0822@gmail.com>
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
use clippy_utils::diagnostics::span_lint_and_sugg;
|
||||
use clippy_utils::get_parent_expr;
|
||||
use clippy_utils::msrvs::{self, Msrv};
|
||||
use clippy_utils::source::snippet_with_context;
|
||||
use clippy_utils::{get_parent_expr, is_no_std_crate};
|
||||
use rustc_errors::Applicability;
|
||||
use rustc_hir::def_id::DefId;
|
||||
use rustc_hir::{Expr, ExprKind};
|
||||
@@ -44,13 +44,14 @@ pub(super) fn check(cx: &LateContext<'_>, expr: &Expr<'_>, cast_expr: &Expr<'_>,
|
||||
let mut applicability = Applicability::MachineApplicable;
|
||||
let ptr = snippet_with_context(cx, ptr_arg.span, ctxt, "ptr", &mut applicability).0;
|
||||
let len = snippet_with_context(cx, len_arg.span, ctxt, "len", &mut applicability).0;
|
||||
let krate = if is_no_std_crate(cx) { "core" } else { "std" };
|
||||
span_lint_and_sugg(
|
||||
cx,
|
||||
CAST_SLICE_FROM_RAW_PARTS,
|
||||
span,
|
||||
format!("casting the result of `{func}` to {cast_to}"),
|
||||
"replace with",
|
||||
format!("core::ptr::slice_{func}({ptr}, {len})"),
|
||||
format!("{krate}::ptr::slice_{func}({ptr}, {len})"),
|
||||
applicability,
|
||||
);
|
||||
}
|
||||
@@ -81,13 +82,14 @@ pub(super) fn check_implicit_cast(cx: &LateContext<'_>, expr: &Expr<'_>) {
|
||||
let ctxt = expr.span.ctxt();
|
||||
let ptr = snippet_with_context(cx, ptr_arg.span, ctxt, "ptr", &mut applicability).0;
|
||||
let len = snippet_with_context(cx, len_arg.span, ctxt, "len", &mut applicability).0;
|
||||
let krate = if is_no_std_crate(cx) { "core" } else { "std" };
|
||||
span_lint_and_sugg(
|
||||
cx,
|
||||
CAST_SLICE_FROM_RAW_PARTS,
|
||||
expr.span,
|
||||
format!("implicitly casting the result of `{func}` to `{target}`"),
|
||||
"replace_with",
|
||||
format!("core::ptr::slice_{func}({ptr}, {len})"),
|
||||
format!("{krate}::ptr::slice_{func}({ptr}, {len})"),
|
||||
applicability,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -6,36 +6,36 @@ fn main() {
|
||||
let mut vec = vec![0u8; 1];
|
||||
let ptr: *const u8 = vec.as_ptr();
|
||||
let mptr = vec.as_mut_ptr();
|
||||
let _: *const [u8] = unsafe { core::ptr::slice_from_raw_parts(ptr, 1) };
|
||||
let _: *const [u8] = unsafe { std::ptr::slice_from_raw_parts(ptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *const [u8] = unsafe { core::ptr::slice_from_raw_parts_mut(mptr, 1) };
|
||||
let _: *const [u8] = unsafe { std::ptr::slice_from_raw_parts_mut(mptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
let _: *const [u8] = std::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
{
|
||||
use core::slice;
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
let _: *const [u8] = std::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
use slice as one;
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
let _: *const [u8] = std::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
{
|
||||
use std::slice;
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
let _: *const [u8] = std::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
use slice as one;
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
let _: *const [u8] = std::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
|
||||
// implicit cast
|
||||
{
|
||||
let _: *const [u8] = unsafe { core::ptr::slice_from_raw_parts(ptr, 1) };
|
||||
let _: *const [u8] = unsafe { std::ptr::slice_from_raw_parts(ptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *mut [u8] = unsafe { core::ptr::slice_from_raw_parts_mut(mptr, 1) };
|
||||
let _: *mut [u8] = unsafe { std::ptr::slice_from_raw_parts_mut(mptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
require_raw_slice_ptr(unsafe { core::ptr::slice_from_raw_parts(ptr, 1) });
|
||||
require_raw_slice_ptr(unsafe { std::ptr::slice_from_raw_parts(ptr, 1) });
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@ error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:9:35
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { std::slice::from_raw_parts(ptr, 1) as *const [u8] };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `std::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
|
||||
= note: `-D clippy::cast-slice-from-raw-parts` implied by `-D warnings`
|
||||
= help: to override `-D warnings` add `#[allow(clippy::cast_slice_from_raw_parts)]`
|
||||
@@ -11,55 +11,55 @@ error: casting the result of `from_raw_parts_mut` to *mut [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:11:35
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { std::slice::from_raw_parts_mut(mptr, 1) as *mut [u8] };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts_mut(mptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `std::ptr::slice_from_raw_parts_mut(mptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:13:26
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { std::slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `std::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:17:30
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `std::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:20:30
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { one::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `std::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:25:30
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `std::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:28:30
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { one::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `std::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts` to `*const [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:34:39
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { std::slice::from_raw_parts(ptr, 1) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `std::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts_mut` to `*mut [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:36:37
|
||||
|
|
||||
LL | let _: *mut [u8] = unsafe { std::slice::from_raw_parts_mut(mptr, 1) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts_mut(mptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `std::ptr::slice_from_raw_parts_mut(mptr, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts` to `*const [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:38:40
|
||||
|
|
||||
LL | require_raw_slice_ptr(unsafe { std::slice::from_raw_parts(ptr, 1) });
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `std::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts` to `*const [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast.rs:46:39
|
||||
|
||||
@@ -0,0 +1,55 @@
|
||||
#![warn(clippy::cast_slice_from_raw_parts)]
|
||||
#![no_std]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
const fn require_raw_slice_ptr<T>(_: *const [T]) {}
|
||||
|
||||
fn main() {
|
||||
let mut arr = [0u8; 1];
|
||||
let ptr: *const u8 = arr.as_ptr();
|
||||
let mptr = arr.as_mut_ptr();
|
||||
let _: *const [u8] = unsafe { core::ptr::slice_from_raw_parts(ptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *const [u8] = unsafe { core::ptr::slice_from_raw_parts_mut(mptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
{
|
||||
use core::slice;
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
use slice as one;
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
{
|
||||
use core::slice;
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
use slice as one;
|
||||
let _: *const [u8] = core::ptr::slice_from_raw_parts(ptr, 1);
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
|
||||
// implicit cast
|
||||
{
|
||||
let _: *const [u8] = unsafe { core::ptr::slice_from_raw_parts(ptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *mut [u8] = unsafe { core::ptr::slice_from_raw_parts_mut(mptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
require_raw_slice_ptr(unsafe { core::ptr::slice_from_raw_parts(ptr, 1) });
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
|
||||
// implicit cast in const context
|
||||
const {
|
||||
const PTR: *const u8 = core::ptr::null();
|
||||
const MPTR: *mut u8 = core::ptr::null_mut();
|
||||
let _: *const [u8] = unsafe { core::ptr::slice_from_raw_parts(PTR, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *mut [u8] = unsafe { core::ptr::slice_from_raw_parts_mut(MPTR, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
require_raw_slice_ptr(unsafe { core::ptr::slice_from_raw_parts(PTR, 1) });
|
||||
//~^ cast_slice_from_raw_parts
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
#![warn(clippy::cast_slice_from_raw_parts)]
|
||||
#![no_std]
|
||||
#![crate_type = "lib"]
|
||||
|
||||
const fn require_raw_slice_ptr<T>(_: *const [T]) {}
|
||||
|
||||
fn main() {
|
||||
let mut arr = [0u8; 1];
|
||||
let ptr: *const u8 = arr.as_ptr();
|
||||
let mptr = arr.as_mut_ptr();
|
||||
let _: *const [u8] = unsafe { core::slice::from_raw_parts(ptr, 1) as *const [u8] };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *const [u8] = unsafe { core::slice::from_raw_parts_mut(mptr, 1) as *mut [u8] };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *const [u8] = unsafe { core::slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
//~^ cast_slice_from_raw_parts
|
||||
{
|
||||
use core::slice;
|
||||
let _: *const [u8] = unsafe { slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
//~^ cast_slice_from_raw_parts
|
||||
use slice as one;
|
||||
let _: *const [u8] = unsafe { one::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
{
|
||||
use core::slice;
|
||||
let _: *const [u8] = unsafe { slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
//~^ cast_slice_from_raw_parts
|
||||
use slice as one;
|
||||
let _: *const [u8] = unsafe { one::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
|
||||
// implicit cast
|
||||
{
|
||||
let _: *const [u8] = unsafe { core::slice::from_raw_parts(ptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *mut [u8] = unsafe { core::slice::from_raw_parts_mut(mptr, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
require_raw_slice_ptr(unsafe { core::slice::from_raw_parts(ptr, 1) });
|
||||
//~^ cast_slice_from_raw_parts
|
||||
}
|
||||
|
||||
// implicit cast in const context
|
||||
const {
|
||||
const PTR: *const u8 = core::ptr::null();
|
||||
const MPTR: *mut u8 = core::ptr::null_mut();
|
||||
let _: *const [u8] = unsafe { core::slice::from_raw_parts(PTR, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
let _: *mut [u8] = unsafe { core::slice::from_raw_parts_mut(MPTR, 1) };
|
||||
//~^ cast_slice_from_raw_parts
|
||||
require_raw_slice_ptr(unsafe { core::slice::from_raw_parts(PTR, 1) });
|
||||
//~^ cast_slice_from_raw_parts
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:11:35
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { core::slice::from_raw_parts(ptr, 1) as *const [u8] };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
|
||||
= note: `-D clippy::cast-slice-from-raw-parts` implied by `-D warnings`
|
||||
= help: to override `-D warnings` add `#[allow(clippy::cast_slice_from_raw_parts)]`
|
||||
|
||||
error: casting the result of `from_raw_parts_mut` to *mut [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:13:35
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { core::slice::from_raw_parts_mut(mptr, 1) as *mut [u8] };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts_mut(mptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:15:26
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { core::slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:19:30
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:22:30
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { one::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:27:30
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { slice::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: casting the result of `from_raw_parts` to *const [u8]
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:30:30
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { one::from_raw_parts(ptr, 1) } as *const [u8];
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts` to `*const [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:36:39
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { core::slice::from_raw_parts(ptr, 1) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts_mut` to `*mut [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:38:37
|
||||
|
|
||||
LL | let _: *mut [u8] = unsafe { core::slice::from_raw_parts_mut(mptr, 1) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts_mut(mptr, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts` to `*const [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:40:40
|
||||
|
|
||||
LL | require_raw_slice_ptr(unsafe { core::slice::from_raw_parts(ptr, 1) });
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts(ptr, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts` to `*const [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:48:39
|
||||
|
|
||||
LL | let _: *const [u8] = unsafe { core::slice::from_raw_parts(PTR, 1) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts(PTR, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts_mut` to `*mut [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:50:37
|
||||
|
|
||||
LL | let _: *mut [u8] = unsafe { core::slice::from_raw_parts_mut(MPTR, 1) };
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts_mut(MPTR, 1)`
|
||||
|
||||
error: implicitly casting the result of `from_raw_parts` to `*const [u8]`
|
||||
--> tests/ui/cast_raw_slice_pointer_cast_no_std.rs:52:40
|
||||
|
|
||||
LL | require_raw_slice_ptr(unsafe { core::slice::from_raw_parts(PTR, 1) });
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace_with: `core::ptr::slice_from_raw_parts(PTR, 1)`
|
||||
|
||||
error: aborting due to 13 previous errors
|
||||
|
||||
Reference in New Issue
Block a user