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
..
2023-12-10 10:56:22 +08:00
2023-12-10 10:56:22 +08:00
2023-12-10 10:56:22 +08:00
2023-12-14 15:22:37 +01:00
2023-12-05 17:15:46 +00:00
2023-12-15 16:12:27 +00:00
2023-12-10 10:56:22 +08:00
2024-01-05 10:00:59 +00:00