rust/tests/ui/rust-2024/unsafe-env.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

41 lines
1019 B
Rust
Raw Permalink Normal View History

//@ revisions: e2021 e2024
//@[e2021] edition: 2021
//@[e2024] edition: 2024
//@[e2024] compile-flags: -Zunstable-options
use std::env;
#[deny(unsafe_op_in_unsafe_fn)]
unsafe fn unsafe_fn() {
env::set_var("FOO", "BAR");
//[e2024]~^ ERROR call to unsafe function `std::env::set_var` is unsafe
env::remove_var("FOO");
//[e2024]~^ ERROR call to unsafe function `std::env::remove_var` is unsafe
if false {
unsafe_fn();
//~^ ERROR call to unsafe function `unsafe_fn` is unsafe
}
}
fn safe_fn() {}
#[deny(unused_unsafe)]
fn main() {
env::set_var("FOO", "BAR");
//[e2024]~^ ERROR call to unsafe function `set_var` is unsafe
env::remove_var("FOO");
//[e2024]~^ ERROR call to unsafe function `remove_var` is unsafe
unsafe {
env::set_var("FOO", "BAR");
env::remove_var("FOO");
}
unsafe_fn();
//~^ ERROR call to unsafe function `unsafe_fn` is unsafe
unsafe {
//~^ ERROR unnecessary `unsafe` block
safe_fn();
}
}