diff options
| author | bors <bors@rust-lang.org> | 2023-11-17 12:16:53 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2023-11-17 12:16:53 +0000 |
| commit | 4d7f952a02d0bca67c98a6b74895b7e3fbe38341 (patch) | |
| tree | 926827a60044923a88fb8ad0a8d302a4e18a05b3 /compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp | |
| parent | 78efca8845f5f220db4722f32fd51641e915684c (diff) | |
| parent | af79fd109bf858fa0d21c13bddf975c29b5a0d1e (diff) | |
| download | rust-4d7f952a02d0bca67c98a6b74895b7e3fbe38341.tar.gz rust-4d7f952a02d0bca67c98a6b74895b7e3fbe38341.zip | |
Auto merge of #112422 - aliemjay:implied-bounds-placeholders, r=lcnr
ignore implied bounds with placeholders
given the following code:
```rust
trait Trait {
type Ty<'a> where Self: 'a;
}
impl<T> Trait for T {
type Ty<'a> = () where Self: 'a;
}
struct Foo<T: Trait>(T)
where
for<'x> T::Ty<'x>: Sized;
```
when computing the implied bounds from `Foo<X>` we incorrectly get the bound `X: !x` from the normalization of ` for<'x> <X as Trait>::Ty::<'x>: Sized`. This is a a known bug! we shouldn't use the constraints that arise from normalization as implied bounds. See #109628.
Ignore these bounds for now. This should prevent later ICEs.
Fixes #112250
Fixes #107409
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
