11610: Add a (currently failing) test for #11242 r=flodiebold a=flodiebold



Co-authored-by: Florian Diebold <flodiebold@gmail.com>
This commit is contained in:
bors[bot] 2022-03-03 17:42:33 +00:00 committed by GitHub
commit e949375098
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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;
}
"#,
);
}