error: call to deprecated safe function `std::env::set_var` is unsafe and requires unsafe block
  --> $DIR/unsafe-env-suggestion.rs:9:5
   |
LL |     env::set_var("FOO", "BAR");
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
   |
   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2024!
   = note: for more information, see issue #27970 <https://github.com/rust-lang/rust/issues/27970>
note: the lint level is defined here
  --> $DIR/unsafe-env-suggestion.rs:3:9
   |
LL | #![deny(deprecated_safe_2024)]
   |         ^^^^^^^^^^^^^^^^^^^^
help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
   |
LL +     // TODO: Audit that the environment access only happens in single-threaded code.
LL ~     unsafe { env::set_var("FOO", "BAR") };
   |

error: call to deprecated safe function `std::env::remove_var` is unsafe and requires unsafe block
  --> $DIR/unsafe-env-suggestion.rs:12:5
   |
LL |     env::remove_var("FOO");
   |     ^^^^^^^^^^^^^^^^^^^^^^ call to unsafe function
   |
   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2024!
   = note: for more information, see issue #27970 <https://github.com/rust-lang/rust/issues/27970>
help: you can wrap the call in an `unsafe` block if you can guarantee that the environment access only happens in single-threaded code
   |
LL +     // TODO: Audit that the environment access only happens in single-threaded code.
LL ~     unsafe { env::remove_var("FOO") };
   |

error: aborting due to 2 previous errors

