mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-21 22:34:05 +00:00
Mark never_type_fallback_flowing_into_unsafe
as a semantic change
...rather than a future error
This commit is contained in:
parent
46967bd2e9
commit
673bb5e3ff
@ -4185,7 +4185,7 @@ declare_lint! {
|
||||
Warn,
|
||||
"never type fallback affecting unsafe function calls",
|
||||
@future_incompatible = FutureIncompatibleInfo {
|
||||
reason: FutureIncompatibilityReason::EditionAndFutureReleaseError(Edition::Edition2024),
|
||||
reason: FutureIncompatibilityReason::EditionAndFutureReleaseSemanticsChange(Edition::Edition2024),
|
||||
reference: "issue #123748 <https://github.com/rust-lang/rust/issues/123748>",
|
||||
};
|
||||
@edition Edition2024 => Deny;
|
||||
|
@ -432,6 +432,17 @@ pub enum FutureIncompatibilityReason {
|
||||
/// [`EditionError`]: FutureIncompatibilityReason::EditionError
|
||||
/// [`FutureReleaseErrorDontReportInDeps`]: FutureIncompatibilityReason::FutureReleaseErrorDontReportInDeps
|
||||
EditionAndFutureReleaseError(Edition),
|
||||
/// This will change meaning in the provided edition *and* in a future
|
||||
/// release.
|
||||
///
|
||||
/// This variant a combination of [`FutureReleaseSemanticsChange`]
|
||||
/// and [`EditionSemanticsChange`]. This is useful in rare cases when we
|
||||
/// want to have "preview" of a breaking change in an edition, but do a
|
||||
/// breaking change later on all editions anyway.
|
||||
///
|
||||
/// [`EditionSemanticsChange`]: FutureIncompatibilityReason::EditionSemanticsChange
|
||||
/// [`FutureReleaseSemanticsChange`]: FutureIncompatibilityReason::FutureReleaseSemanticsChange
|
||||
EditionAndFutureReleaseSemanticsChange(Edition),
|
||||
/// A custom reason.
|
||||
///
|
||||
/// Choose this variant if the built-in text of the diagnostic of the
|
||||
@ -446,7 +457,8 @@ impl FutureIncompatibilityReason {
|
||||
match self {
|
||||
Self::EditionError(e)
|
||||
| Self::EditionSemanticsChange(e)
|
||||
| Self::EditionAndFutureReleaseError(e) => Some(e),
|
||||
| Self::EditionAndFutureReleaseError(e)
|
||||
| Self::EditionAndFutureReleaseSemanticsChange(e) => Some(e),
|
||||
|
||||
FutureIncompatibilityReason::FutureReleaseErrorDontReportInDeps
|
||||
| FutureIncompatibilityReason::FutureReleaseErrorReportInDeps
|
||||
|
@ -388,6 +388,11 @@ pub fn lint_level(
|
||||
it will become a hard error in Rust {edition} and in a future release in all editions!"
|
||||
)
|
||||
}
|
||||
FutureIncompatibilityReason::EditionAndFutureReleaseSemanticsChange(edition) => {
|
||||
format!(
|
||||
"this changes meaning in Rust {edition} and in a future release in all editions!"
|
||||
)
|
||||
}
|
||||
FutureIncompatibilityReason::Custom(reason) => reason.to_owned(),
|
||||
};
|
||||
|
||||
|
@ -4,7 +4,7 @@ warning: never type fallback affects this call to an `unsafe` function
|
||||
LL | unsafe { mem::zeroed() }
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
= note: `#[warn(never_type_fallback_flowing_into_unsafe)]` on by default
|
||||
@ -19,7 +19,7 @@ warning: never type fallback affects this call to an `unsafe` function
|
||||
LL | core::mem::transmute(Zst)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -33,7 +33,7 @@ warning: never type fallback affects this union access
|
||||
LL | unsafe { Union { a: () }.b }
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
|
||||
@ -43,7 +43,7 @@ warning: never type fallback affects this raw pointer dereference
|
||||
LL | unsafe { *ptr::from_ref(&()).cast() }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -57,7 +57,7 @@ warning: never type fallback affects this call to an `unsafe` function
|
||||
LL | unsafe { internally_create(x) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -71,7 +71,7 @@ warning: never type fallback affects this call to an `unsafe` function
|
||||
LL | unsafe { zeroed() }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -85,7 +85,7 @@ warning: never type fallback affects this `unsafe` function
|
||||
LL | let zeroed = mem::zeroed;
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -99,7 +99,7 @@ warning: never type fallback affects this `unsafe` function
|
||||
LL | let f = internally_create;
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -113,7 +113,7 @@ warning: never type fallback affects this call to an `unsafe` method
|
||||
LL | S(marker::PhantomData).create_out_of_thin_air()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
|
||||
@ -126,7 +126,7 @@ LL | match send_message::<_ /* ?0 */>() {
|
||||
LL | msg_send!();
|
||||
| ----------- in this macro invocation
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
= note: this warning originates in the macro `msg_send` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
@ -4,7 +4,7 @@ error: never type fallback affects this call to an `unsafe` function
|
||||
LL | unsafe { mem::zeroed() }
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
= note: `#[deny(never_type_fallback_flowing_into_unsafe)]` on by default
|
||||
@ -19,7 +19,7 @@ error: never type fallback affects this call to an `unsafe` function
|
||||
LL | core::mem::transmute(Zst)
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -33,7 +33,7 @@ error: never type fallback affects this union access
|
||||
LL | unsafe { Union { a: () }.b }
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
|
||||
@ -43,7 +43,7 @@ error: never type fallback affects this raw pointer dereference
|
||||
LL | unsafe { *ptr::from_ref(&()).cast() }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -57,7 +57,7 @@ error: never type fallback affects this call to an `unsafe` function
|
||||
LL | unsafe { internally_create(x) }
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -71,7 +71,7 @@ error: never type fallback affects this call to an `unsafe` function
|
||||
LL | unsafe { zeroed() }
|
||||
| ^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -85,7 +85,7 @@ error: never type fallback affects this `unsafe` function
|
||||
LL | let zeroed = mem::zeroed;
|
||||
| ^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -99,7 +99,7 @@ error: never type fallback affects this `unsafe` function
|
||||
LL | let f = internally_create;
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
help: use `()` annotations to avoid fallback changes
|
||||
@ -113,7 +113,7 @@ error: never type fallback affects this call to an `unsafe` method
|
||||
LL | S(marker::PhantomData).create_out_of_thin_air()
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
|
||||
@ -126,7 +126,7 @@ LL | match send_message::<_ /* ?0 */>() {
|
||||
LL | msg_send!();
|
||||
| ----------- in this macro invocation
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
= warning: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the type explicitly
|
||||
= note: this error originates in the macro `msg_send` (in Nightly builds, run with -Z macro-backtrace for more info)
|
||||
|
@ -13,7 +13,7 @@ fn _zero() {
|
||||
unsafe { mem::zeroed() }
|
||||
//[e2015]~^ warn: never type fallback affects this call to an `unsafe` function
|
||||
//[e2024]~^^ error: never type fallback affects this call to an `unsafe` function
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
//[e2024]~| warning: the type `!` does not permit zero-initialization
|
||||
} else {
|
||||
return;
|
||||
@ -30,7 +30,7 @@ fn _trans() {
|
||||
core::mem::transmute(Zst)
|
||||
//[e2015]~^ warn: never type fallback affects this call to an `unsafe` function
|
||||
//[e2024]~^^ error: never type fallback affects this call to an `unsafe` function
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
@ -47,7 +47,7 @@ fn _union() {
|
||||
unsafe { Union { a: () }.b }
|
||||
//[e2015]~^ warn: never type fallback affects this union access
|
||||
//[e2024]~^^ error: never type fallback affects this union access
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
} else {
|
||||
return;
|
||||
};
|
||||
@ -58,7 +58,7 @@ fn _deref() {
|
||||
unsafe { *ptr::from_ref(&()).cast() }
|
||||
//[e2015]~^ warn: never type fallback affects this raw pointer dereference
|
||||
//[e2024]~^^ error: never type fallback affects this raw pointer dereference
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
} else {
|
||||
return;
|
||||
};
|
||||
@ -79,7 +79,7 @@ fn _only_generics() {
|
||||
unsafe { internally_create(x) }
|
||||
//[e2015]~^ warn: never type fallback affects this call to an `unsafe` function
|
||||
//[e2024]~^^ error: never type fallback affects this call to an `unsafe` function
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
|
||||
x.unwrap()
|
||||
} else {
|
||||
@ -92,12 +92,12 @@ fn _stored_function() {
|
||||
let zeroed = mem::zeroed;
|
||||
//[e2015]~^ warn: never type fallback affects this `unsafe` function
|
||||
//[e2024]~^^ error: never type fallback affects this `unsafe` function
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
|
||||
unsafe { zeroed() }
|
||||
//[e2015]~^ warn: never type fallback affects this call to an `unsafe` function
|
||||
//[e2024]~^^ error: never type fallback affects this call to an `unsafe` function
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
} else {
|
||||
return;
|
||||
};
|
||||
@ -115,7 +115,7 @@ fn _only_generics_stored_function() {
|
||||
let f = internally_create;
|
||||
//[e2015]~^ warn: never type fallback affects this `unsafe` function
|
||||
//[e2024]~^^ error: never type fallback affects this `unsafe` function
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
|
||||
unsafe { f(x) }
|
||||
|
||||
@ -140,7 +140,7 @@ fn _method() {
|
||||
S(marker::PhantomData).create_out_of_thin_air()
|
||||
//[e2015]~^ warn: never type fallback affects this call to an `unsafe` method
|
||||
//[e2024]~^^ error: never type fallback affects this call to an `unsafe` method
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
}
|
||||
} else {
|
||||
return;
|
||||
@ -158,7 +158,7 @@ fn _objc() {
|
||||
match send_message::<_ /* ?0 */>() {
|
||||
//[e2015]~^ warn: never type fallback affects this call to an `unsafe` function
|
||||
//[e2024]~^^ error: never type fallback affects this call to an `unsafe` function
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions!
|
||||
//~| warn: this changes meaning in Rust 2024 and in a future release in all editions!
|
||||
Ok(x) => x,
|
||||
Err(_) => loop {},
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user