|  | error[E0792]: expected generic type parameter, found `&str` | 
|  | --> $DIR/recursive-ice-101862.rs:6:19 | 
|  | | | 
|  | LL | pub fn ice(x: impl AsRef<str>) -> impl IntoIterator<Item = ()> { | 
|  | |               --------------- this generic parameter must be used with a generic type parameter | 
|  | LL | | 
|  | LL |     vec![].append(&mut ice(x.as_ref())); | 
|  | |                   ^^^^^^^^^^^^^^^^^^^^ | 
|  |  | 
|  | warning: function cannot return without recursing | 
|  | --> $DIR/recursive-ice-101862.rs:4:1 | 
|  | | | 
|  | LL | pub fn ice(x: impl AsRef<str>) -> impl IntoIterator<Item = ()> { | 
|  | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing | 
|  | LL | | 
|  | LL |     vec![].append(&mut ice(x.as_ref())); | 
|  | |                        --------------- recursive call site | 
|  | | | 
|  | = help: a `loop` may express intention better if this is on purpose | 
|  | = note: `#[warn(unconditional_recursion)]` on by default | 
|  |  | 
|  | error: aborting due to 1 previous error; 1 warning emitted | 
|  |  | 
|  | For more information about this error, try `rustc --explain E0792`. |