about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-11-17 12:16:53 +0000
committerbors <bors@rust-lang.org>2023-11-17 12:16:53 +0000
commit4d7f952a02d0bca67c98a6b74895b7e3fbe38341 (patch)
tree926827a60044923a88fb8ad0a8d302a4e18a05b3 /compiler/rustc_llvm/llvm-wrapper/ArchiveWrapper.cpp
parent78efca8845f5f220db4722f32fd51641e915684c (diff)
parentaf79fd109bf858fa0d21c13bddf975c29b5a0d1e (diff)
downloadrust-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