Add a (currently failing) test for #11242

This commit is contained in:
Florian Diebold 2022-03-03 18:32:40 +01:00
parent a55dd29e88
commit 82fe1c77b5
2 changed files with 33 additions and 0 deletions

View File

@ -555,8 +555,10 @@ fn try_coerce_unsized(&mut self, from_ty: &Ty, to_ty: &Ty) -> CoerceResult {
);
}
Solution::Ambig(Guidance::Definite(subst)) => {
// FIXME need to record an obligation here
canonicalized.apply_solution(&mut self.table, subst)
}
// FIXME actually we maybe should also accept unknown guidance here
_ => return Err(TypeError),
};
let unsize =

View File

@ -1267,3 +1267,34 @@ fn test() {
"#]],
);
}
#[test]
fn bug_11242() {
// FIXME: wrong, should be u32
check_types(
r#"
fn foo<A, B>()
where
A: IntoIterator<Item = u32>,
B: IntoIterator<Item = usize>,
{
let _x: <A as IntoIterator>::Item;
// ^^ {unknown}
}
pub trait Iterator {
type Item;
}
pub trait IntoIterator {
type Item;
type IntoIter: Iterator<Item = Self::Item>;
}
impl<I: Iterator> IntoIterator for I {
type Item = I::Item;
type IntoIter = I;
}
"#,
);
}