-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't trigger unsafe_op_in_unsafe_fn
for deprecated safe fns
#125925
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