Merge #11610
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:
commit
e949375098
@ -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 =
|
||||
|
@ -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;
|
||||
}
|
||||
"#,
|
||||
);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user