]> git.lizzy.rs Git - rust.git/blob - src/test/ui/codegen/issue-99551.rs
Auto merge of #100845 - timvermeulen:iter_compare, r=scottmcm
[rust.git] / src / test / ui / codegen / issue-99551.rs
1 // build-pass
2 #![feature(trait_upcasting)]
3 #![allow(incomplete_features)]
4
5 pub trait A {}
6 pub trait B {}
7
8 pub trait C: A + B {}
9 impl<X: A + B> C for X {}
10
11 pub fn test<'a, T>(view: T) -> Option<&'a mut dyn B>
12 where
13     T: IntoIterator<Item = &'a mut dyn B>,
14 {
15     return Some(view.into_iter().next().unwrap());
16 }
17
18 fn main() {
19     let mut a: Vec<Box<dyn C>> = Vec::new();
20     test(a.iter_mut().map(|c| c.as_mut() as &mut dyn B));
21 }