1 error[E0225]: only auto traits can be used as additional traits in a trait object
2 --> $DIR/no-duplicates.rs:16:22
7 | additional non-auto trait
10 LL | type _T00 = dyn _0 + _0;
11 | -- ^^ trait alias used in trait object type (additional use)
13 | trait alias used in trait object type (first use)
15 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
16 = 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>
18 error[E0225]: only auto traits can be used as additional traits in a trait object
19 --> $DIR/no-duplicates.rs:19:22
24 | additional non-auto trait
25 | first non-auto trait
27 | -- referenced here (first use)
29 LL | type _T01 = dyn _1 + _0;
30 | -- ^^ trait alias used in trait object type (additional use)
32 | trait alias used in trait object type (first use)
34 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
35 = 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>
37 error[E0225]: only auto traits can be used as additional traits in a trait object
38 --> $DIR/no-duplicates.rs:22:22
43 | additional non-auto trait
44 | first non-auto trait
48 | referenced here (additional use)
49 | referenced here (first use)
51 LL | type _T02 = dyn _1 + _1;
52 | -- ^^ trait alias used in trait object type (additional use)
54 | trait alias used in trait object type (first use)
56 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
57 = 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>
59 error[E0225]: only auto traits can be used as additional traits in a trait object
60 --> $DIR/no-duplicates.rs:25:23
63 | --- additional non-auto trait
65 | -- referenced here (additional use)
67 LL | type _T03 = dyn Obj + _1;
68 | --- ^^ trait alias used in trait object type (additional use)
70 | first non-auto trait
72 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
73 = 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>
75 error[E0225]: only auto traits can be used as additional traits in a trait object
76 --> $DIR/no-duplicates.rs:28:22
79 | --- first non-auto trait
81 | -- referenced here (first use)
83 LL | type _T04 = dyn _1 + Obj;
84 | -- ^^^ additional non-auto trait
86 | trait alias used in trait object type (first use)
88 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
89 = 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>
91 error[E0225]: only auto traits can be used as additional traits in a trait object
92 --> $DIR/no-duplicates.rs:37:17
97 | additional non-auto trait
98 | first non-auto trait
100 | -- referenced here (additional use)
102 LL | trait _2 = _0 + _1;
103 | -- -- referenced here (additional use)
105 | referenced here (first use)
107 LL | type _T10 = dyn _2 + _3;
110 | trait alias used in trait object type (additional use)
111 | trait alias used in trait object type (first use)
113 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj + Obj {}`
114 = 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>
116 error[E0225]: only auto traits can be used as additional traits in a trait object
117 --> $DIR/no-duplicates.rs:40:22
120 | --- additional non-auto trait
122 LL | trait _2 = _0 + _1;
123 | -- referenced here (additional use)
125 | --- first non-auto trait
127 LL | type _T11 = dyn _3 + _2;
128 | -- ^^ trait alias used in trait object type (additional use)
130 | trait alias used in trait object type (first use)
132 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj + Obj {}`
133 = 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>
135 error[E0225]: only auto traits can be used as additional traits in a trait object
136 --> $DIR/no-duplicates.rs:43:23
139 | --- additional non-auto trait
141 LL | trait _2 = _0 + _1;
142 | -- referenced here (additional use)
144 LL | type _T12 = dyn Obj + _2;
145 | --- ^^ trait alias used in trait object type (additional use)
147 | first non-auto trait
149 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj + Obj {}`
150 = 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>
152 error[E0225]: only auto traits can be used as additional traits in a trait object
153 --> $DIR/no-duplicates.rs:46:17
158 | additional non-auto trait
159 | first non-auto trait
161 | -- referenced here (additional use)
163 LL | trait _2 = _0 + _1;
164 | -- -- referenced here (additional use)
166 | referenced here (first use)
168 LL | type _T13 = dyn _2 + Obj;
171 | trait alias used in trait object type (additional use)
172 | trait alias used in trait object type (first use)
174 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj + Obj {}`
175 = 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>
177 error[E0225]: only auto traits can be used as additional traits in a trait object
178 --> $DIR/no-duplicates.rs:49:22
181 | --- first non-auto trait
183 | -- referenced here (first use)
186 | --- additional non-auto trait
188 LL | type _T14 = dyn _1 + _3;
189 | -- ^^ trait alias used in trait object type (additional use)
191 | trait alias used in trait object type (first use)
193 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
194 = 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>
196 error[E0225]: only auto traits can be used as additional traits in a trait object
197 --> $DIR/no-duplicates.rs:52:22
200 | --- additional non-auto trait
202 | -- referenced here (additional use)
205 | --- first non-auto trait
207 LL | type _T15 = dyn _3 + _1;
208 | -- ^^ trait alias used in trait object type (additional use)
210 | trait alias used in trait object type (first use)
212 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
213 = 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>
215 error[E0225]: only auto traits can be used as additional traits in a trait object
216 --> $DIR/no-duplicates.rs:55:22
219 | --- first non-auto trait
221 | -- referenced here (first use)
224 | --- additional non-auto trait
226 | -- referenced here (additional use)
228 LL | type _T16 = dyn _1 + _4;
229 | -- ^^ trait alias used in trait object type (additional use)
231 | trait alias used in trait object type (first use)
233 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
234 = 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>
236 error[E0225]: only auto traits can be used as additional traits in a trait object
237 --> $DIR/no-duplicates.rs:58:22
240 | --- additional non-auto trait
242 | -- referenced here (additional use)
245 | --- first non-auto trait
247 | -- referenced here (first use)
249 LL | type _T17 = dyn _4 + _1;
250 | -- ^^ trait alias used in trait object type (additional use)
252 | trait alias used in trait object type (first use)
254 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
255 = 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>
257 error[E0225]: only auto traits can be used as additional traits in a trait object
258 --> $DIR/no-duplicates.rs:65:22
260 LL | trait _5 = Obj + Send;
263 | additional non-auto trait
264 | first non-auto trait
266 LL | type _T20 = dyn _5 + _5;
267 | -- ^^ trait alias used in trait object type (additional use)
269 | trait alias used in trait object type (first use)
271 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
272 = 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>
274 error[E0225]: only auto traits can be used as additional traits in a trait object
275 --> $DIR/no-duplicates.rs:68:23
277 LL | trait _5 = Obj + Send;
278 | --- additional non-auto trait
280 LL | type _T21 = dyn Obj + _5;
281 | --- ^^ trait alias used in trait object type (additional use)
283 | first non-auto trait
285 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
286 = 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>
288 error[E0225]: only auto traits can be used as additional traits in a trait object
289 --> $DIR/no-duplicates.rs:71:22
291 LL | trait _5 = Obj + Send;
292 | --- first non-auto trait
294 LL | type _T22 = dyn _5 + Obj;
295 | -- ^^^ additional non-auto trait
297 | trait alias used in trait object type (first use)
299 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
300 = 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>
302 error[E0225]: only auto traits can be used as additional traits in a trait object
303 --> $DIR/no-duplicates.rs:74:36
305 LL | trait _5 = Obj + Send;
306 | --- first non-auto trait
308 LL | type _T23 = dyn _5 + Send + Sync + Obj;
309 | -- ^^^ additional non-auto trait
311 | trait alias used in trait object type (first use)
313 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
314 = 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>
316 error[E0225]: only auto traits can be used as additional traits in a trait object
317 --> $DIR/no-duplicates.rs:81:17
319 LL | trait _5 = Obj + Send;
322 | additional non-auto trait
323 | first non-auto trait
325 LL | trait _6 = _5 + _5; // ==> Obj + Send + Obj + Send
326 | -- -- referenced here (additional use)
328 | referenced here (first use)
330 LL | type _T30 = dyn _6;
333 | trait alias used in trait object type (additional use)
334 | trait alias used in trait object type (first use)
336 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
337 = 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>
339 error[E0225]: only auto traits can be used as additional traits in a trait object
340 --> $DIR/no-duplicates.rs:84:17
342 LL | trait _5 = Obj + Send;
345 | additional non-auto trait
346 | first non-auto trait
348 LL | trait _6 = _5 + _5; // ==> Obj + Send + Obj + Send
349 | -- -- referenced here (additional use)
351 | referenced here (first use)
353 LL | type _T31 = dyn _6 + Send;
356 | trait alias used in trait object type (additional use)
357 | trait alias used in trait object type (first use)
359 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
360 = 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>
362 error[E0225]: only auto traits can be used as additional traits in a trait object
363 --> $DIR/no-duplicates.rs:87:24
365 LL | trait _5 = Obj + Send;
368 | additional non-auto trait
369 | first non-auto trait
371 LL | trait _6 = _5 + _5; // ==> Obj + Send + Obj + Send
372 | -- -- referenced here (additional use)
374 | referenced here (first use)
376 LL | type _T32 = dyn Send + _6;
379 | trait alias used in trait object type (additional use)
380 | trait alias used in trait object type (first use)
382 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
383 = 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>
385 error[E0225]: only auto traits can be used as additional traits in a trait object
386 --> $DIR/no-duplicates.rs:95:22
388 LL | trait _5 = Obj + Send;
389 | --- first non-auto trait
391 LL | trait _7 = _5 + Sync;
392 | -- referenced here (first use)
393 LL | trait _8 = Unpin + _7;
394 | -- referenced here (first use)
396 LL | type _T40 = dyn _8 + Obj;
397 | -- ^^^ additional non-auto trait
399 | trait alias used in trait object type (first use)
401 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
402 = 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>
404 error[E0225]: only auto traits can be used as additional traits in a trait object
405 --> $DIR/no-duplicates.rs:98:23
407 LL | trait _5 = Obj + Send;
408 | --- additional non-auto trait
410 LL | trait _7 = _5 + Sync;
411 | -- referenced here (additional use)
412 LL | trait _8 = Unpin + _7;
413 | -- referenced here (additional use)
415 LL | type _T41 = dyn Obj + _8;
416 | --- ^^ trait alias used in trait object type (additional use)
418 | first non-auto trait
420 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
421 = 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>
423 error[E0225]: only auto traits can be used as additional traits in a trait object
424 --> $DIR/no-duplicates.rs:101:22
427 | --- additional non-auto trait
429 | -- referenced here (additional use)
431 LL | trait _5 = Obj + Send;
432 | --- first non-auto trait
434 LL | trait _7 = _5 + Sync;
435 | -- referenced here (first use)
436 LL | trait _8 = Unpin + _7;
437 | -- referenced here (first use)
439 LL | type _T42 = dyn _8 + _4;
440 | -- ^^ trait alias used in trait object type (additional use)
442 | trait alias used in trait object type (first use)
444 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
445 = 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>
447 error[E0225]: only auto traits can be used as additional traits in a trait object
448 --> $DIR/no-duplicates.rs:104:22
451 | --- first non-auto trait
453 | -- referenced here (first use)
455 LL | trait _5 = Obj + Send;
456 | --- additional non-auto trait
458 LL | trait _7 = _5 + Sync;
459 | -- referenced here (additional use)
460 LL | trait _8 = Unpin + _7;
461 | -- referenced here (additional use)
463 LL | type _T43 = dyn _4 + _8;
464 | -- ^^ trait alias used in trait object type (additional use)
466 | trait alias used in trait object type (first use)
468 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
469 = 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>
471 error[E0225]: only auto traits can be used as additional traits in a trait object
472 --> $DIR/no-duplicates.rs:107:36
475 | --- first non-auto trait
477 | -- referenced here (first use)
479 LL | trait _5 = Obj + Send;
480 | --- additional non-auto trait
482 LL | trait _7 = _5 + Sync;
483 | -- referenced here (additional use)
484 LL | trait _8 = Unpin + _7;
485 | -- referenced here (additional use)
487 LL | type _T44 = dyn _4 + Send + Sync + _8;
488 | -- ^^ trait alias used in trait object type (additional use)
490 | trait alias used in trait object type (first use)
492 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}`
493 = 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>
495 error[E0225]: only auto traits can be used as additional traits in a trait object
496 --> $DIR/no-duplicates.rs:117:22
498 LL | trait _9 = for<'a> ObjL<'a>;
499 | ---------------- first non-auto trait
500 LL | trait _10 = for<'b> ObjL<'b>;
501 | ---------------- additional non-auto trait
502 LL | type _T50 = dyn _9 + _10;
503 | -- ^^^ trait alias used in trait object type (additional use)
505 | trait alias used in trait object type (first use)
507 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: for<'a> ObjL<'a> + for<'b> ObjL<'b> {}`
508 = 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>
510 error[E0225]: only auto traits can be used as additional traits in a trait object
511 --> $DIR/no-duplicates.rs:123:23
513 LL | trait _11 = ObjT<for<'a> fn(&'a u8)>;
514 | ------------------------ first non-auto trait
515 LL | trait _12 = ObjT<for<'b> fn(&'b u8)>;
516 | ------------------------ additional non-auto trait
517 LL | type _T60 = dyn _11 + _12;
518 | --- ^^^ trait alias used in trait object type (additional use)
520 | trait alias used in trait object type (first use)
522 = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: ObjT<for<'a> fn(&'a u8)> + ObjT<for<'b> fn(&'b u8)> {}`
523 = 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>
525 error: aborting due to 27 previous errors
527 For more information about this error, try `rustc --explain E0225`.