-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Don't trigger unsafe_op_in_unsafe_fn
for deprecated safe fns
#125925
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Don't trigger unsafe_op_in_unsafe_fn
for deprecated safe fns
#125925
Conversation
r? @Nadrieril rustbot has assigned @Nadrieril. Use |
This comment has been minimized.
This comment has been minimized.
e605228
to
42b7153
Compare
if !span.at_least_rust_2024() | ||
&& self.tcx.has_attr(id, sym::rustc_deprecated_safe_2024) => |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While this PR should probably go through as-is to get the fix in as soon as possible, I feel like this system is somewhat brittle, relying on specifically the symbol rustc_deprecated_safe_2024
and the edition being hard coded to check at least 2024
. I wonder if it would be a good idea for a follow up PR to somehow make this general in that the attribute could specify an edition in which a function starts becoming unsafe, and check that edition?
However, such a followup assumes that we will make more functions unsafe
in the future due to oversight. Ideally we don't have to do that, and I think that the current state of things is such that just about everything has been audited? So perhaps it's not worth such a generalization, since it ideally doesn't happen again.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
While this PR should probably go through as-is to get the fix in as soon as possible, I feel like this system is somewhat brittle, relying on specifically the symbol
rustc_deprecated_safe_2024
and the edition being hard coded to check at least2024
. I wonder if it would be a good idea for a follow up PR to somehow make this general in that the attribute could specify an edition in which a function starts becoming unsafe, and check that edition?
Such a more general has been proposed and can probably be implemented. #[rustc_deprecated_safe_2024]
was intentionally limited in scope in order to make std::env::{set_var, remove_var}
unsafe in Rust 2024. See e.g. #94978.
I have one style comment, feel free to ignore it or fix it now or fix it in a later PR. @bors delegate+ |
✌️ @tbu-, you can now approve this pull request! If @Nadrieril told you to " |
42b7153
to
bb901a1
Compare
@bors r=Nadrieril |
…safe_fn, r=Nadrieril Don't trigger `unsafe_op_in_unsafe_fn` for deprecated safe fns Fixes rust-lang#125875. Tracking: - rust-lang#124866
…iaskrgr Rollup of 7 pull requests Successful merges: - rust-lang#124731 (Add translation support by mdbook-i18n-helpers to bootstrap) - rust-lang#125168 (Match ergonomics 2024: align implementation with RFC) - rust-lang#125925 (Don't trigger `unsafe_op_in_unsafe_fn` for deprecated safe fns) - rust-lang#125966 (Implement `os_string_pathbuf_leak`) - rust-lang#125987 (When `derive`ing, account for HRTB on `BareFn` fields) - rust-lang#126045 (check_expr_struct_fields: taint context with errors if struct definit…) - rust-lang#126048 (Fix typos in cargo-specifics.md) r? `@ghost` `@rustbot` modify labels: rollup
…iaskrgr Rollup of 6 pull requests Successful merges: - rust-lang#124731 (Add translation support by mdbook-i18n-helpers to bootstrap) - rust-lang#125168 (Match ergonomics 2024: align implementation with RFC) - rust-lang#125925 (Don't trigger `unsafe_op_in_unsafe_fn` for deprecated safe fns) - rust-lang#125987 (When `derive`ing, account for HRTB on `BareFn` fields) - rust-lang#126045 (check_expr_struct_fields: taint context with errors if struct definit…) - rust-lang#126048 (Fix typos in cargo-specifics.md) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#125925 - tbu-:pr_unsafe_env_unsafe_op_in_unsafe_fn, r=Nadrieril Don't trigger `unsafe_op_in_unsafe_fn` for deprecated safe fns Fixes rust-lang#125875. Tracking: - rust-lang#124866
Fixes #125875.
Tracking:
std::env::{set_var, remove_var}
unsafe #124866