Add feature diagnostic for unsafe_extern_blocks
This commit is contained in:
parent
99f77a2eda
commit
a62cbda57e
4 changed files with 21 additions and 1 deletions
|
@ -1088,7 +1088,15 @@ impl<'a> Visitor<'a> for AstValidator<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if let &Safety::Unsafe(span) = safety {
|
} else if let &Safety::Unsafe(span) = safety {
|
||||||
this.dcx().emit_err(errors::UnsafeItem { span, kind: "extern block" });
|
let mut diag = this
|
||||||
|
.dcx()
|
||||||
|
.create_err(errors::UnsafeItem { span, kind: "extern block" });
|
||||||
|
rustc_session::parse::add_feature_diagnostics(
|
||||||
|
&mut diag,
|
||||||
|
self.session,
|
||||||
|
sym::unsafe_extern_blocks,
|
||||||
|
);
|
||||||
|
diag.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
if abi.is_none() {
|
if abi.is_none() {
|
||||||
|
|
|
@ -3,6 +3,10 @@ error: extern block cannot be declared unsafe
|
||||||
|
|
|
|
||||||
LL | unsafe extern "C" {
|
LL | unsafe extern "C" {
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
|
||||||
|
= note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
|
||||||
|
= help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
|
||||||
|
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||||
|
|
||||||
error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
|
error[E0658]: `unsafe extern {}` blocks and `safe` keyword are experimental
|
||||||
--> $DIR/feature-gate-unsafe-extern-blocks.rs:9:5
|
--> $DIR/feature-gate-unsafe-extern-blocks.rs:9:5
|
||||||
|
|
|
@ -9,6 +9,10 @@ error: extern block cannot be declared unsafe
|
||||||
|
|
|
|
||||||
LL | extern "C" unsafe {
|
LL | extern "C" unsafe {
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
|
||||||
|
= note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
|
||||||
|
= help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
|
||||||
|
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||||
|
|
||||||
error: items in unadorned `extern` blocks cannot have safety qualifiers
|
error: items in unadorned `extern` blocks cannot have safety qualifiers
|
||||||
--> $DIR/unsafe-foreign-mod-2.rs:4:5
|
--> $DIR/unsafe-foreign-mod-2.rs:4:5
|
||||||
|
|
|
@ -3,6 +3,10 @@ error: extern block cannot be declared unsafe
|
||||||
|
|
|
|
||||||
LL | unsafe extern "C" {
|
LL | unsafe extern "C" {
|
||||||
| ^^^^^^
|
| ^^^^^^
|
||||||
|
|
|
||||||
|
= note: see issue #123743 <https://github.com/rust-lang/rust/issues/123743> for more information
|
||||||
|
= help: add `#![feature(unsafe_extern_blocks)]` to the crate attributes to enable
|
||||||
|
= note: this compiler was built on YYYY-MM-DD; consider upgrading it if it is out of date
|
||||||
|
|
||||||
error: aborting due to 1 previous error
|
error: aborting due to 1 previous error
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue