A type parameter with default value is using forward declared identifier.
Erroneous code example:
struct Foo<T = U, U = ()> {
field1: T,
field2: U,
}
// error: generic parameters with a default cannot use forward declared
// identifiers
RunType parameter defaults can only use parameters that occur before them. Since type parameters are evaluated in-order, this issue could be fixed by doing:
struct Foo<U = (), T = U> {
field1: T,
field2: U,
}
RunPlease also verify that this wasn’t because of a name-clash and rename the type parameter if so.