about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src/errors.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-05-23 04:41:44 +0000
committerbors <bors@rust-lang.org>2023-05-23 04:41:44 +0000
commit4400d8fce79ab2a610f05479413397464052e9c0 (patch)
tree54921e091d07237928966e3a80fc537f41f9568c /compiler/rustc_codegen_llvm/src/errors.rs
parent8b4b20836b832e91aa605a2faf5e2a55190202c8 (diff)
parent4cfafb275e8d9049c26ab58831d58254a09b9f61 (diff)
downloadrust-4400d8fce79ab2a610f05479413397464052e9c0.tar.gz
rust-4400d8fce79ab2a610f05479413397464052e9c0.zip
Auto merge of #110204 - compiler-errors:new-solver-hir-typeck-hacks, r=lcnr
Deal with unnormalized projections when structurally resolving types with new solver

1. Normalize types in `structurally_resolved_type` when the new solver is enabled
2. Normalize built-in autoderef targets in `Autoderef` when the new solver is enabled
3. Normalize-erasing-regions in `resolve_type` in writeback

This is motivated by the UI test provided, which currently fails with:

```
error[E0609]: no field `x` on type `<usize as SliceIndex<[Foo]>>::Output`
 --> <source>:9:11
  |
9 |     xs[0].x = 1;
  |           ^
```

 I'm pretty happy with the approach in (1.) and (2.) and think we'll inevitably need something like this in the long-term, but (3.) seems like a hack to me. It's a *lot* of work to add tons of new calls to every user of these typeck results though (mir build, late lints, etc). Happy to discuss further.

r? `@lcnr`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src/errors.rs')
0 files changed, 0 insertions, 0 deletions