1 error: generic arguments must come before the first constraint
2 --> $DIR/suggest-move-types.rs:26:26
4 LL | struct A<T, M: One<A=(), T>> {
5 | ---- ^ generic argument
9 help: move the constraint after the generic argument
11 LL | struct A<T, M: One<T, A = ()>> {
14 error: generic arguments must come before the first constraint
15 --> $DIR/suggest-move-types.rs:33:43
17 LL | struct Al<'a, T, M: OneWithLifetime<A=(), T, 'a>> {
18 | ---- ^ ^^ generic arguments
22 help: move the constraint after the generic arguments
24 LL | struct Al<'a, T, M: OneWithLifetime<'a, T, A = ()>> {
27 error: generic arguments must come before the first constraint
28 --> $DIR/suggest-move-types.rs:40:46
30 LL | struct B<T, U, V, M: Three<A=(), B=(), C=(), T, U, V>> {
31 | ---- ---- ---- ^ ^ ^ generic arguments
35 help: move the constraints after the generic arguments
37 LL | struct B<T, U, V, M: Three<T, U, V, A = (), B = (), C = ()>> {
38 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 error: generic arguments must come before the first constraint
41 --> $DIR/suggest-move-types.rs:48:71
43 LL | struct Bl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<A=(), B=(), C=(), T, U, V, 'a, 'b, 'c>> {
44 | ---- ---- ---- ^ ^ ^ ^^ ^^ ^^ generic arguments
48 help: move the constraints after the generic arguments
50 LL | struct Bl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<'a, 'b, 'c, T, U, V, A = (), B = (), C = ()>> {
51 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
53 error: generic arguments must come before the first constraint
54 --> $DIR/suggest-move-types.rs:57:28
56 LL | struct C<T, U, V, M: Three<T, A=(), B=(), C=(), U, V>> {
57 | ^ ---- ---- ---- ^ ^ generic arguments
61 help: move the constraints after the generic arguments
63 LL | struct C<T, U, V, M: Three<T, U, V, A = (), B = (), C = ()>> {
64 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
66 error: generic arguments must come before the first constraint
67 --> $DIR/suggest-move-types.rs:65:53
69 LL | struct Cl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<T, 'a, A=(), B=(), C=(), U, 'b, V, 'c>> {
70 | ^ ^^ ---- ---- ---- ^ ^^ ^ ^^ generic arguments
74 help: move the constraints after the generic arguments
76 LL | struct Cl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<'a, 'b, 'c, T, U, V, A = (), B = (), C = ()>> {
77 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
79 error: generic arguments must come before the first constraint
80 --> $DIR/suggest-move-types.rs:74:28
82 LL | struct D<T, U, V, M: Three<T, A=(), B=(), U, C=(), V>> {
83 | ^ ---- ---- ^ ---- ^ generic arguments
87 help: move the constraints after the generic arguments
89 LL | struct D<T, U, V, M: Three<T, U, V, A = (), B = (), C = ()>> {
90 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92 error: generic arguments must come before the first constraint
93 --> $DIR/suggest-move-types.rs:82:53
95 LL | struct Dl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<T, 'a, A=(), B=(), U, 'b, C=(), V, 'c>> {
96 | ^ ^^ ---- ---- ^ ^^ ---- ^ ^^ generic arguments
100 help: move the constraints after the generic arguments
102 LL | struct Dl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<'a, 'b, 'c, T, U, V, A = (), B = (), C = ()>> {
103 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
105 error[E0747]: type provided when a lifetime was expected
106 --> $DIR/suggest-move-types.rs:33:43
108 LL | struct Al<'a, T, M: OneWithLifetime<A=(), T, 'a>> {
111 error[E0747]: type provided when a lifetime was expected
112 --> $DIR/suggest-move-types.rs:48:71
114 LL | struct Bl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<A=(), B=(), C=(), T, U, V, 'a, 'b, 'c>> {
117 error[E0747]: lifetime provided when a type was expected
118 --> $DIR/suggest-move-types.rs:65:56
120 LL | struct Cl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<T, 'a, A=(), B=(), C=(), U, 'b, V, 'c>> {
123 = note: lifetime arguments must be provided before type arguments
124 = help: reorder the arguments: lifetimes, then type and consts: `<'a, 'b, 'c, T, U, V>`
126 error[E0747]: lifetime provided when a type was expected
127 --> $DIR/suggest-move-types.rs:82:56
129 LL | struct Dl<'a, 'b, 'c, T, U, V, M: ThreeWithLifetime<T, 'a, A=(), B=(), U, 'b, C=(), V, 'c>> {
132 = note: lifetime arguments must be provided before type arguments
133 = help: reorder the arguments: lifetimes, then type and consts: `<'a, 'b, 'c, T, U, V>`
135 error: aborting due to 12 previous errors
137 For more information about this error, try `rustc --explain E0747`.