Rollup merge of #122171 - compiler-errors:next-solver-tests, r=lcnr

Add some new solver tests

Fixes #119607
Fixes #119608

r? lcnr
This commit is contained in:
Matthias Krüger 2024-03-08 21:02:02 +01:00 committed by GitHub
commit 9829ff67ba
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 49 additions and 0 deletions

View file

@ -0,0 +1,26 @@
//@ compile-flags: -Znext-solver
//@ check-pass
// Regression test for #119607.
pub trait IntoFoo {
type Item;
type IntoIter: Foo<Item = Self::Item>;
fn into_iter(self) -> Self::IntoIter;
}
pub trait Foo {
type Item;
fn next(self) -> Option<Self::Item>;
}
pub fn foo<'a, Iter1, Elem1>(a: &'a Iter1)
where
&'a Iter1: IntoFoo<Item = Elem1>,
{
a.into_iter().next();
}
fn main() {}

View file

@ -0,0 +1,23 @@
//@ compile-flags: -Znext-solver
//@ check-pass
// Regression test for #119608.
pub trait Foo {}
pub trait Bar {
type Assoc;
}
impl<T: Foo> Bar for T {
type Assoc = T;
}
pub fn foo<I>(_input: <I as Bar>::Assoc)
where
I: Bar,
<I as Bar>::Assoc: Foo,
{
}
fn main() {}