-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Use ParamEnv::reveal_all
in CFI
#128580
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
Use ParamEnv::reveal_all
in CFI
#128580
Conversation
r? @davidtwco rustbot has assigned @davidtwco. Use |
f358fc5
to
59a3c4e
Compare
LGTM (@davidtwco FYI). Thank you for your time and for working on this, @compiler-errors! Much appreciated. |
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.
h'lo the grammar checker in my brain found a red squiggle.
59a3c4e
to
b0beb64
Compare
…iaskrgr Rollup of 5 pull requests Successful merges: - rust-lang#122049 (Promote riscv64gc-unknown-linux-musl to tier 2) - rust-lang#128580 (Use `ParamEnv::reveal_all` in CFI) - rust-lang#128688 (custom MIR: add support for tail calls) - rust-lang#128694 (Normalize when equating `dyn` tails in MIR borrowck) - rust-lang#128697 (interpret: move nullary-op evaluation into operator.rs) r? `@ghost` `@rustbot` modify labels: rollup
Rollup merge of rust-lang#128580 - compiler-errors:cfi-param-env, r=lcnr Use `ParamEnv::reveal_all` in CFI I left a huge comment for why this ICEs in the test I committed. `typeid_for_instance` should only be called on monomorphic instances during codegen, and we should just be using `ParamEnv::reveal_all()` rather than the param-env of the instance itself. I added an assertion to ensure that we only do this for fully substituted instances (this may break with polymorphization, but I kinda don't care lol). Fixes rust-lang#114160 cc `@rcvalle`
I left a huge comment for why this ICEs in the test I committed.
typeid_for_instance
should only be called on monomorphic instances during codegen, and we should just be usingParamEnv::reveal_all()
rather than the param-env of the instance itself. I added an assertion to ensure that we only do this for fully substituted instances (this may break with polymorphization, but I kinda don't care lol).Fixes #114160
cc @rcvalle