Add tests (and a bit of cleanup) for interior mut handling in promotion and const-checking by RalfJung · Pull Request #121893 · rust-lang/rust (original) (raw)
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 andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Conversation10 Commits3 Checks0 Files changed
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
[ Show hidden characters]({{ revealButtonHref }})
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
Relevant to the compiler team, which will review and decide on the PR/issue.
labels
//~^ERROR: mutable pointer in final value of constant |
---|
// In contrast, this one works since it is being promoted. |
const NONE: &'static Option<Cell> = &None; |
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe show off the promotion somewhere other than the trailing expression?
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point, I didn't even realize that's possible -- I will add
// Making it clear that this is promotion, not "outer scope". const NONE_EXPLICIT_PROMOTED: &'static Option<Cell> = { let x = &None; x };
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interestingly, the behavior of this example changed between stable and nightly. On nightly it just says "can't drop String
in const", on stable it additionally says "temporary value dropped while borrowed". I hope that's just suppressing two errors from the same location and not secretly actually doing promotion...
📌 Commit fb802f2 has been approved by oli-obk
It is now in the queue for this repository.
bors added S-waiting-on-bors
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
and removed S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
labels
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request
… r=oli-obk
Add tests (and a bit of cleanup) for interior mut handling in promotion and const-checking
Basically these are the parts of rust-lang#121786 that can be salvaged.
r? @oli-obk
bors added a commit to rust-lang-ci/rust that referenced this pull request
…kingjubilee
Rollup of 15 pull requests
Successful merges:
- rust-lang#116791 (Allow codegen backends to opt-out of parallel codegen)
- rust-lang#116793 (Allow targets to override default codegen backend)
- rust-lang#117458 (LLVM Bitcode Linker: A self contained linker for nvptx and other targets)
- rust-lang#119385 (Fix type resolution of associated const equality bounds (take 2))
- rust-lang#121438 (std support for wasm32 panic=unwind)
- rust-lang#121893 (Add tests (and a bit of cleanup) for interior mut handling in promotion and const-checking)
- rust-lang#122080 (Clarity improvements to
DropTree
) - rust-lang#122152 (Improve diagnostics for parenthesized type arguments)
- rust-lang#122166 (Remove the unused
field_remapping
field fromTypeLowering
) - rust-lang#122249 (interpret: do not call machine read hooks during validation)
- rust-lang#122299 (Store backtrace for
must_produce_diag
) - rust-lang#122318 (Revision-related tweaks for next-solver tests)
- rust-lang#122320 (Use ptradd for vtable indexing)
- rust-lang#122328 (unix_sigpipe: Replace
inherit
withsig_dfl
in syntax tests) - rust-lang#122330 (bootstrap readme: fix, improve, update)
r? @ghost
@rustbot
modify labels: rollup
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request
Rollup merge of rust-lang#121893 - RalfJung:const-interior-mut-tests, r=oli-obk
Add tests (and a bit of cleanup) for interior mut handling in promotion and const-checking
Basically these are the parts of rust-lang#121786 that can be salvaged.
r? @oli-obk
RalfJung deleted the const-interior-mut-tests branch
Labels
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the compiler team, which will review and decide on the PR/issue.