//@ run-pass
#![feature(type_alias_impl_trait)]
use std::iter::{Chain, once};
type I = Chain>;
#[define_opaque(I)]
fn test2>(x: A) -> I {
x.chain(once("5"))
}
fn main() {
assert_eq!(vec!["1", "3", "5"], test2(["1", "3"].iter().cloned()).collect::>());
}