Skip to content

Commit

Permalink
add test ensuring we cannot call const-stable unstable functions
Browse files Browse the repository at this point in the history
  • Loading branch information
RalfJung committed Sep 30, 2024
1 parent 5c3ceb3 commit 7650307
Show file tree
Hide file tree
Showing 3 changed files with 70 additions and 0 deletions.
13 changes: 13 additions & 0 deletions tests/ui/consts/auxiliary/unstable_but_const_stable.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#![feature(staged_api, rustc_attrs, intrinsics)]
#![stable(since="1.0.0", feature = "stable")]

extern "rust-intrinsic" {
#[unstable(feature = "unstable", issue = "42")]
#[rustc_const_stable(feature = "stable", since = "1.0.0")]
#[rustc_nounwind]
pub fn write_bytes<T>(dst: *mut T, val: u8, count: usize);
}

#[unstable(feature = "unstable", issue = "42")]
#[rustc_const_stable(feature = "stable", since = "1.0.0")]
pub const fn some_unstable_fn() {}
14 changes: 14 additions & 0 deletions tests/ui/consts/unstable-const-stable.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
//@ aux-build:unstable_but_const_stable.rs

extern crate unstable_but_const_stable;
use unstable_but_const_stable::*;

fn main() {
some_unstable_fn(); //~ERROR use of unstable library feature
unsafe { write_bytes(4 as *mut u8, 0, 0) }; //~ERROR use of unstable library feature
}

const fn const_main() {
some_unstable_fn(); //~ERROR use of unstable library feature
unsafe { write_bytes(4 as *mut u8, 0, 0) }; //~ERROR use of unstable library feature
}
43 changes: 43 additions & 0 deletions tests/ui/consts/unstable-const-stable.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
error[E0658]: use of unstable library feature 'unstable'
--> $DIR/unstable-const-stable.rs:7:5
|
LL | some_unstable_fn();
| ^^^^^^^^^^^^^^^^
|
= note: see issue #42 <https://github.com/rust-lang/rust/issues/42> for more information
= help: add `#![feature(unstable)]` 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]: use of unstable library feature 'unstable'
--> $DIR/unstable-const-stable.rs:8:14
|
LL | unsafe { write_bytes(4 as *mut u8, 0, 0) };
| ^^^^^^^^^^^
|
= note: see issue #42 <https://github.com/rust-lang/rust/issues/42> for more information
= help: add `#![feature(unstable)]` 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]: use of unstable library feature 'unstable'
--> $DIR/unstable-const-stable.rs:12:5
|
LL | some_unstable_fn();
| ^^^^^^^^^^^^^^^^
|
= note: see issue #42 <https://github.com/rust-lang/rust/issues/42> for more information
= help: add `#![feature(unstable)]` 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]: use of unstable library feature 'unstable'
--> $DIR/unstable-const-stable.rs:13:14
|
LL | unsafe { write_bytes(4 as *mut u8, 0, 0) };
| ^^^^^^^^^^^
|
= note: see issue #42 <https://github.com/rust-lang/rust/issues/42> for more information
= help: add `#![feature(unstable)]` 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 4 previous errors

For more information about this error, try `rustc --explain E0658`.

0 comments on commit 7650307

Please sign in to comment.