rust/tests/ui/rust-2024/unsafe-env.rs
2024-06-05 23:44:59 +02:00

40 lines
1,019 B
Rust

//@ 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();
}
}