fn g<U: Future>() {
let a: U::Output;
let b: U::Output;
// a and b can be of different type?
}
g::<!>();
I think the U: Future
in the function’s type parameters implies that a specific U: Future
impl has been passed to the function. In other words, no, there will be one type variable and a
and b
will both have that type.