blob: 2ea8ae68ef87702265e4d2b1a3d366321155d39f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
A type parameter with default value is using forward declared identifier.
Erroneous code example:
```compile_fail,E0128
struct Foo<T = U, U = ()> {
field1: T,
field2: U,
}
// error: generic parameters with a default cannot use forward declared
// identifiers
```
Type 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,
}
```
Please also verify that this wasn't because of a name-clash and rename the type
parameter if so.
|