about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2025-05-27 13:01:40 +0200
committerGitHub <noreply@github.com>2025-05-27 13:01:40 +0200
commit9d46af12e018d35e804aece2a8c97e5d9e595c2a (patch)
tree7df4148bde4bd5d6937ec486ccc0a4526008b536 /compiler/rustc_codegen_llvm/src
parentfb4cc991c06079ca062b01e5c16c6e9c400382ea (diff)
parent5e31cd30aae245aaa1374e12521667b8c728402d (diff)
downloadrust-9d46af12e018d35e804aece2a8c97e5d9e595c2a.tar.gz
rust-9d46af12e018d35e804aece2a8c97e5d9e595c2a.zip
Rollup merge of #141584 - compiler-errors:typing-env-synthetic-body, r=lcnr
Support `opaque_types_defined_by` for `SyntheticCoroutineBody`

We create a synthetic MIR body for the `AsyncFnOnce` impl for async closures. That body goes through all passes that a regular body does, including promotion.

Promotion sometimes requires computing that the type of an rvalue is `Freeze`, which requires computing the typing env of a body. This requires calling `opaque_types_defined_by` on the body's def id, which leads to an ICE today since we don't expect that query to be called for synthetic bodies.

While we could fix this by, for example, computing the typeck root of the body before calling a `TypingEnv` constructor, I think it's appropriate to do a more general fix here since I think it's reasonable that other passes might do analysis too.

Fixes rust-lang/rust#141466

r? ```@lcnr``` or ```@oli-obk```
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions