rust/compiler/rustc_trait_selection/src/solve
Guillaume Gomez 46c3c014eb
Rollup merge of #119817 - compiler-errors:normalize-opaques, r=lcnr
Remove special-casing around `AliasKind::Opaque` when structurally resolving in new solver

This fixes a few inconsistencies around where we don't eagerly resolve opaques to their (locally-defined) hidden types in the new solver. It essentially allows this code to work:
```rust
fn main() {
    type Tait = impl Sized;
    struct S {
        i: i32,
    }
    let x: Tait = S { i: 0 };
    println!("{}", x.i);
}
```

Since `Tait` is defined in `main`, we are able to poke through the type of `x` with deref.

r? lcnr
2024-01-12 15:16:56 +01:00
..
assembly Movability doesn't need to be a query anymore 2023-12-28 16:35:01 +00:00
eval_ctxt add comment 2023-12-19 17:39:48 +01:00
inspect readd the provisional cache 2024-01-09 09:15:56 +01:00
normalizes_to Remove movability from TyKind::Coroutine 2023-12-28 16:35:01 +00:00
alias_relate.rs More comments 2024-01-10 16:29:23 +00:00
fulfill.rs add unused NormalizesTo predicate 2023-12-07 17:52:51 +01:00
mod.rs More comments 2024-01-10 16:29:23 +00:00
normalize.rs Remove special-casing around aliaskind in new solver 2024-01-11 16:54:11 +00:00
project_goals.rs track the source of nested goals 2023-12-18 08:47:29 +01:00
search_graph.rs this is not a rust code snippet 2024-01-09 13:10:37 +01:00
trait_goals.rs Movability doesn't need to be a query anymore 2023-12-28 16:35:01 +00:00