1 error[E0225]: only auto traits can be used as additional traits in a trait object
2 --> $DIR/no-extra-traits.rs:16:22
5 | ---- first non-auto trait
7 LL | type _T00 = dyn _0 + ObjB;
8 | -- ^^^^ additional non-auto trait
10 | trait alias used in trait object type (first use)
12 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
13 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
15 error[E0225]: only auto traits can be used as additional traits in a trait object
16 --> $DIR/no-extra-traits.rs:19:24
19 | ---- additional non-auto trait
21 LL | type _T01 = dyn ObjB + _0;
22 | ---- ^^ trait alias used in trait object type (additional use)
24 | first non-auto trait
26 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
27 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
29 error[E0225]: only auto traits can be used as additional traits in a trait object
30 --> $DIR/no-extra-traits.rs:22:24
33 | ---- additional non-auto trait
35 | -- referenced here (additional use)
37 LL | type _T02 = dyn ObjB + _1;
38 | ---- ^^ trait alias used in trait object type (additional use)
40 | first non-auto trait
42 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
43 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
45 error[E0225]: only auto traits can be used as additional traits in a trait object
46 --> $DIR/no-extra-traits.rs:25:22
49 | ---- first non-auto trait
51 | -- referenced here (first use)
53 LL | type _T03 = dyn _1 + ObjB;
54 | -- ^^^^ additional non-auto trait
56 | trait alias used in trait object type (first use)
58 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
59 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
61 error[E0225]: only auto traits can be used as additional traits in a trait object
62 --> $DIR/no-extra-traits.rs:34:22
67 | additional non-auto trait
68 | first non-auto trait
70 | -- referenced here (additional use)
72 LL | type _T10 = dyn _2 + _3;
73 | -- ^^ trait alias used in trait object type (additional use)
75 | trait alias used in trait object type (first use)
77 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjB {}`
78 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
80 error[E0225]: only auto traits can be used as additional traits in a trait object
81 --> $DIR/no-extra-traits.rs:37:22
86 | additional non-auto trait
87 | first non-auto trait
89 | -- referenced here (first use)
91 LL | type _T11 = dyn _3 + _2;
92 | -- ^^ trait alias used in trait object type (additional use)
94 | trait alias used in trait object type (first use)
96 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjB {}`
97 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
99 error[E0225]: only auto traits can be used as additional traits in a trait object
100 --> $DIR/no-extra-traits.rs:40:22
102 LL | trait _2 = ObjB;
105 | additional non-auto trait
106 | first non-auto trait
108 | -- referenced here (additional use)
110 | -- referenced here (additional use)
112 LL | type _T12 = dyn _2 + _4;
113 | -- ^^ trait alias used in trait object type (additional use)
115 | trait alias used in trait object type (first use)
117 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjB {}`
118 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
120 error[E0225]: only auto traits can be used as additional traits in a trait object
121 --> $DIR/no-extra-traits.rs:43:22
123 LL | trait _2 = ObjB;
126 | additional non-auto trait
127 | first non-auto trait
129 | -- referenced here (first use)
131 | -- referenced here (first use)
133 LL | type _T13 = dyn _4 + _2;
134 | -- ^^ trait alias used in trait object type (additional use)
136 | trait alias used in trait object type (first use)
138 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjB {}`
139 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
141 error[E0225]: only auto traits can be used as additional traits in a trait object
142 --> $DIR/no-extra-traits.rs:50:22
144 LL | trait _0 = ObjA;
145 | ---- additional non-auto trait
147 | -- referenced here (additional use)
149 LL | trait _5 = Sync + ObjB + Send;
150 | ---- first non-auto trait
152 LL | type _T20 = dyn _5 + _1;
153 | -- ^^ trait alias used in trait object type (additional use)
155 | trait alias used in trait object type (first use)
157 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
158 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
160 error[E0225]: only auto traits can be used as additional traits in a trait object
161 --> $DIR/no-extra-traits.rs:53:22
163 LL | trait _0 = ObjA;
164 | ---- first non-auto trait
166 | -- referenced here (first use)
168 LL | trait _5 = Sync + ObjB + Send;
169 | ---- additional non-auto trait
171 LL | type _T21 = dyn _1 + _5;
172 | -- ^^ trait alias used in trait object type (additional use)
174 | trait alias used in trait object type (first use)
176 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
177 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
179 error[E0225]: only auto traits can be used as additional traits in a trait object
180 --> $DIR/no-extra-traits.rs:56:22
182 LL | trait _5 = Sync + ObjB + Send;
183 | ---- first non-auto trait
185 LL | type _T22 = dyn _5 + ObjA;
186 | -- ^^^^ additional non-auto trait
188 | trait alias used in trait object type (first use)
190 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
191 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
193 error[E0225]: only auto traits can be used as additional traits in a trait object
194 --> $DIR/no-extra-traits.rs:59:24
196 LL | trait _5 = Sync + ObjB + Send;
197 | ---- additional non-auto trait
199 LL | type _T23 = dyn ObjA + _5;
200 | ---- ^^ trait alias used in trait object type (additional use)
202 | first non-auto trait
204 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
205 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
207 error[E0225]: only auto traits can be used as additional traits in a trait object
208 --> $DIR/no-extra-traits.rs:62:29
210 LL | trait _0 = ObjA;
211 | ---- additional non-auto trait
213 | -- referenced here (additional use)
215 LL | trait _5 = Sync + ObjB + Send;
216 | ---- first non-auto trait
218 LL | type _T24 = dyn Send + _5 + _1 + Sync;
219 | -- ^^ trait alias used in trait object type (additional use)
221 | trait alias used in trait object type (first use)
223 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
224 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
226 error[E0225]: only auto traits can be used as additional traits in a trait object
227 --> $DIR/no-extra-traits.rs:65:29
229 LL | trait _0 = ObjA;
230 | ---- first non-auto trait
232 | -- referenced here (first use)
234 LL | trait _5 = Sync + ObjB + Send;
235 | ---- additional non-auto trait
237 LL | type _T25 = dyn _1 + Sync + _5 + Send;
238 | -- ^^ trait alias used in trait object type (additional use)
240 | trait alias used in trait object type (first use)
242 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
243 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
245 error[E0225]: only auto traits can be used as additional traits in a trait object
246 --> $DIR/no-extra-traits.rs:68:36
248 LL | trait _5 = Sync + ObjB + Send;
249 | ---- first non-auto trait
251 LL | type _T26 = dyn Sync + Send + _5 + ObjA;
252 | -- ^^^^ additional non-auto trait
254 | trait alias used in trait object type (first use)
256 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
257 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
259 error[E0225]: only auto traits can be used as additional traits in a trait object
260 --> $DIR/no-extra-traits.rs:71:38
262 LL | trait _5 = Sync + ObjB + Send;
263 | ---- additional non-auto trait
265 LL | type _T27 = dyn Send + Sync + ObjA + _5;
266 | ---- ^^ trait alias used in trait object type (additional use)
268 | first non-auto trait
270 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
271 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
273 error[E0225]: only auto traits can be used as additional traits in a trait object
274 --> $DIR/no-extra-traits.rs:80:17
276 LL | trait _0 = ObjA;
277 | ---- first non-auto trait
279 | -- referenced here (first use)
281 LL | trait _5 = Sync + ObjB + Send;
282 | ---- additional non-auto trait
284 LL | trait _6 = _1 + _5;
285 | -- -- referenced here (additional use)
287 | referenced here (first use)
289 LL | type _T30 = dyn _6;
292 | trait alias used in trait object type (additional use)
293 | trait alias used in trait object type (first use)
295 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
296 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
298 error[E0225]: only auto traits can be used as additional traits in a trait object
299 --> $DIR/no-extra-traits.rs:83:17
301 LL | trait _0 = ObjA;
302 | ---- first non-auto trait
304 | -- referenced here (first use)
306 LL | trait _5 = Sync + ObjB + Send;
307 | ---- additional non-auto trait
309 LL | trait _6 = _1 + _5;
310 | -- -- referenced here (additional use)
312 | referenced here (first use)
314 LL | type _T31 = dyn _6 + Send;
317 | trait alias used in trait object type (additional use)
318 | trait alias used in trait object type (first use)
320 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
321 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
323 error[E0225]: only auto traits can be used as additional traits in a trait object
324 --> $DIR/no-extra-traits.rs:86:24
326 LL | trait _0 = ObjA;
327 | ---- first non-auto trait
329 | -- referenced here (first use)
331 LL | trait _5 = Sync + ObjB + Send;
332 | ---- additional non-auto trait
334 LL | trait _6 = _1 + _5;
335 | -- -- referenced here (additional use)
337 | referenced here (first use)
339 LL | type _T32 = dyn Send + _6;
342 | trait alias used in trait object type (additional use)
343 | trait alias used in trait object type (first use)
345 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
346 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
348 error[E0225]: only auto traits can be used as additional traits in a trait object
349 --> $DIR/no-extra-traits.rs:89:17
351 LL | trait _0 = ObjA;
352 | ---- first non-auto trait
354 | -- referenced here (first use)
356 LL | trait _5 = Sync + ObjB + Send;
357 | ---- additional non-auto trait
359 LL | trait _6 = _1 + _5;
360 | -- -- referenced here (additional use)
362 | referenced here (first use)
366 | referenced here (additional use)
367 | referenced here (first use)
371 | referenced here (additional use)
372 | referenced here (first use)
374 LL | type _T33 = dyn _8;
377 | trait alias used in trait object type (additional use)
378 | trait alias used in trait object type (first use)
380 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
381 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
383 error[E0225]: only auto traits can be used as additional traits in a trait object
384 --> $DIR/no-extra-traits.rs:92:17
386 LL | trait _0 = ObjA;
387 | ---- first non-auto trait
389 | -- referenced here (first use)
391 LL | trait _5 = Sync + ObjB + Send;
392 | ---- additional non-auto trait
394 LL | trait _6 = _1 + _5;
395 | -- -- referenced here (additional use)
397 | referenced here (first use)
401 | referenced here (additional use)
402 | referenced here (first use)
406 | referenced here (additional use)
407 | referenced here (first use)
409 LL | type _T34 = dyn _8 + Send;
412 | trait alias used in trait object type (additional use)
413 | trait alias used in trait object type (first use)
415 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
416 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
418 error[E0225]: only auto traits can be used as additional traits in a trait object
419 --> $DIR/no-extra-traits.rs:95:24
421 LL | trait _0 = ObjA;
422 | ---- first non-auto trait
424 | -- referenced here (first use)
426 LL | trait _5 = Sync + ObjB + Send;
427 | ---- additional non-auto trait
429 LL | trait _6 = _1 + _5;
430 | -- -- referenced here (additional use)
432 | referenced here (first use)
436 | referenced here (additional use)
437 | referenced here (first use)
441 | referenced here (additional use)
442 | referenced here (first use)
444 LL | type _T35 = dyn Send + _8;
447 | trait alias used in trait object type (additional use)
448 | trait alias used in trait object type (first use)
450 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
451 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
453 error[E0225]: only auto traits can be used as additional traits in a trait object
454 --> $DIR/no-extra-traits.rs:103:23
456 LL | trait _5 = Sync + ObjB + Send;
457 | ---- first non-auto trait
459 LL | trait _9 = _5 + Sync;
460 | -- referenced here (first use)
461 LL | trait _10 = Unpin + _9;
462 | -- referenced here (first use)
464 LL | type _T40 = dyn _10 + ObjA;
465 | --- ^^^^ additional non-auto trait
467 | trait alias used in trait object type (first use)
469 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
470 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
472 error[E0225]: only auto traits can be used as additional traits in a trait object
473 --> $DIR/no-extra-traits.rs:106:24
475 LL | trait _5 = Sync + ObjB + Send;
476 | ---- additional non-auto trait
478 LL | trait _9 = _5 + Sync;
479 | -- referenced here (additional use)
480 LL | trait _10 = Unpin + _9;
481 | -- referenced here (additional use)
483 LL | type _T41 = dyn ObjA + _10;
484 | ---- ^^^ trait alias used in trait object type (additional use)
486 | first non-auto trait
488 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
489 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
491 error[E0225]: only auto traits can be used as additional traits in a trait object
492 --> $DIR/no-extra-traits.rs:109:23
494 LL | trait _0 = ObjA;
495 | ---- additional non-auto trait
497 | -- referenced here (additional use)
499 LL | trait _5 = Sync + ObjB + Send;
500 | ---- first non-auto trait
502 LL | trait _9 = _5 + Sync;
503 | -- referenced here (first use)
504 LL | trait _10 = Unpin + _9;
505 | -- referenced here (first use)
507 LL | type _T42 = dyn _10 + _1;
508 | --- ^^ trait alias used in trait object type (additional use)
510 | trait alias used in trait object type (first use)
512 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
513 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
515 error[E0225]: only auto traits can be used as additional traits in a trait object
516 --> $DIR/no-extra-traits.rs:112:37
518 LL | trait _5 = Sync + ObjB + Send;
519 | ---- first non-auto trait
521 LL | trait _9 = _5 + Sync;
522 | -- referenced here (first use)
523 LL | trait _10 = Unpin + _9;
524 | -- referenced here (first use)
526 LL | type _T43 = dyn Send + _10 + Sync + ObjA;
527 | --- ^^^^ additional non-auto trait
529 | trait alias used in trait object type (first use)
531 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
532 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
534 error[E0225]: only auto traits can be used as additional traits in a trait object
535 --> $DIR/no-extra-traits.rs:115:24
537 LL | trait _5 = Sync + ObjB + Send;
538 | ---- additional non-auto trait
540 LL | trait _9 = _5 + Sync;
541 | -- referenced here (additional use)
542 LL | trait _10 = Unpin + _9;
543 | -- referenced here (additional use)
545 LL | type _T44 = dyn ObjA + _10 + Send + Sync;
546 | ---- ^^^ trait alias used in trait object type (additional use)
548 | first non-auto trait
550 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjA + ObjB {}`
551 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
553 error[E0225]: only auto traits can be used as additional traits in a trait object
554 --> $DIR/no-extra-traits.rs:118:37
556 LL | trait _0 = ObjA;
557 | ---- additional non-auto trait
559 | -- referenced here (additional use)
561 LL | trait _5 = Sync + ObjB + Send;
562 | ---- first non-auto trait
564 LL | trait _9 = _5 + Sync;
565 | -- referenced here (first use)
566 LL | trait _10 = Unpin + _9;
567 | -- referenced here (first use)
569 LL | type _T45 = dyn Sync + Send + _10 + _1;
570 | --- ^^ trait alias used in trait object type (additional use)
572 | trait alias used in trait object type (first use)
574 = help: consider creating a new trait with all of these as super-traits and using that trait here instead: `trait NewTrait: ObjB + ObjA {}`
575 = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit <https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits>
577 error: aborting due to 28 previous errors
579 For more information about this error, try `rustc --explain E0225`.