]> git.lizzy.rs Git - rust.git/blob - src/test/ui/traits/alias/no-extra-traits.stderr
Auto merge of #87284 - Aaron1011:remove-paren-special, r=petrochenkov
[rust.git] / src / test / ui / traits / alias / no-extra-traits.stderr
1 error[E0225]: only auto traits can be used as additional traits in a trait object
2   --> $DIR/no-extra-traits.rs:16:22
3    |
4 LL | trait _0 = ObjA;
5    |            ---- first non-auto trait
6 ...
7 LL | type _T00 = dyn _0 + ObjB;
8    |                 --   ^^^^ additional non-auto trait
9    |                 |
10    |                 trait alias used in trait object type (first use)
11    |
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>
14
15 error[E0225]: only auto traits can be used as additional traits in a trait object
16   --> $DIR/no-extra-traits.rs:19:24
17    |
18 LL | trait _0 = ObjA;
19    |            ---- additional non-auto trait
20 ...
21 LL | type _T01 = dyn ObjB + _0;
22    |                 ----   ^^ trait alias used in trait object type (additional use)
23    |                 |
24    |                 first non-auto trait
25    |
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>
28
29 error[E0225]: only auto traits can be used as additional traits in a trait object
30   --> $DIR/no-extra-traits.rs:22:24
31    |
32 LL | trait _0 = ObjA;
33    |            ---- additional non-auto trait
34 LL | trait _1 = _0;
35    |            -- referenced here (additional use)
36 ...
37 LL | type _T02 = dyn ObjB + _1;
38    |                 ----   ^^ trait alias used in trait object type (additional use)
39    |                 |
40    |                 first non-auto trait
41    |
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>
44
45 error[E0225]: only auto traits can be used as additional traits in a trait object
46   --> $DIR/no-extra-traits.rs:25:22
47    |
48 LL | trait _0 = ObjA;
49    |            ---- first non-auto trait
50 LL | trait _1 = _0;
51    |            -- referenced here (first use)
52 ...
53 LL | type _T03 = dyn _1 + ObjB;
54    |                 --   ^^^^ additional non-auto trait
55    |                 |
56    |                 trait alias used in trait object type (first use)
57    |
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>
60
61 error[E0225]: only auto traits can be used as additional traits in a trait object
62   --> $DIR/no-extra-traits.rs:34:22
63    |
64 LL | trait _2 = ObjB;
65    |            ----
66    |            |
67    |            additional non-auto trait
68    |            first non-auto trait
69 LL | trait _3 = _2;
70    |            -- referenced here (additional use)
71 ...
72 LL | type _T10 = dyn _2 + _3;
73    |                 --   ^^ trait alias used in trait object type (additional use)
74    |                 |
75    |                 trait alias used in trait object type (first use)
76    |
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>
79
80 error[E0225]: only auto traits can be used as additional traits in a trait object
81   --> $DIR/no-extra-traits.rs:37:22
82    |
83 LL | trait _2 = ObjB;
84    |            ----
85    |            |
86    |            additional non-auto trait
87    |            first non-auto trait
88 LL | trait _3 = _2;
89    |            -- referenced here (first use)
90 ...
91 LL | type _T11 = dyn _3 + _2;
92    |                 --   ^^ trait alias used in trait object type (additional use)
93    |                 |
94    |                 trait alias used in trait object type (first use)
95    |
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>
98
99 error[E0225]: only auto traits can be used as additional traits in a trait object
100   --> $DIR/no-extra-traits.rs:40:22
101    |
102 LL | trait _2 = ObjB;
103    |            ----
104    |            |
105    |            additional non-auto trait
106    |            first non-auto trait
107 LL | trait _3 = _2;
108    |            -- referenced here (additional use)
109 LL | trait _4 = _3;
110    |            -- referenced here (additional use)
111 ...
112 LL | type _T12 = dyn _2 + _4;
113    |                 --   ^^ trait alias used in trait object type (additional use)
114    |                 |
115    |                 trait alias used in trait object type (first use)
116    |
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>
119
120 error[E0225]: only auto traits can be used as additional traits in a trait object
121   --> $DIR/no-extra-traits.rs:43:22
122    |
123 LL | trait _2 = ObjB;
124    |            ----
125    |            |
126    |            additional non-auto trait
127    |            first non-auto trait
128 LL | trait _3 = _2;
129    |            -- referenced here (first use)
130 LL | trait _4 = _3;
131    |            -- referenced here (first use)
132 ...
133 LL | type _T13 = dyn _4 + _2;
134    |                 --   ^^ trait alias used in trait object type (additional use)
135    |                 |
136    |                 trait alias used in trait object type (first use)
137    |
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>
140
141 error[E0225]: only auto traits can be used as additional traits in a trait object
142   --> $DIR/no-extra-traits.rs:50:22
143    |
144 LL | trait _0 = ObjA;
145    |            ---- additional non-auto trait
146 LL | trait _1 = _0;
147    |            -- referenced here (additional use)
148 ...
149 LL | trait _5 = Sync + ObjB + Send;
150    |                   ---- first non-auto trait
151 LL | 
152 LL | type _T20 = dyn _5 + _1;
153    |                 --   ^^ trait alias used in trait object type (additional use)
154    |                 |
155    |                 trait alias used in trait object type (first use)
156    |
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>
159
160 error[E0225]: only auto traits can be used as additional traits in a trait object
161   --> $DIR/no-extra-traits.rs:53:22
162    |
163 LL | trait _0 = ObjA;
164    |            ---- first non-auto trait
165 LL | trait _1 = _0;
166    |            -- referenced here (first use)
167 ...
168 LL | trait _5 = Sync + ObjB + Send;
169    |                   ---- additional non-auto trait
170 ...
171 LL | type _T21 = dyn _1 + _5;
172    |                 --   ^^ trait alias used in trait object type (additional use)
173    |                 |
174    |                 trait alias used in trait object type (first use)
175    |
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>
178
179 error[E0225]: only auto traits can be used as additional traits in a trait object
180   --> $DIR/no-extra-traits.rs:56:22
181    |
182 LL | trait _5 = Sync + ObjB + Send;
183    |                   ---- first non-auto trait
184 ...
185 LL | type _T22 = dyn _5 + ObjA;
186    |                 --   ^^^^ additional non-auto trait
187    |                 |
188    |                 trait alias used in trait object type (first use)
189    |
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>
192
193 error[E0225]: only auto traits can be used as additional traits in a trait object
194   --> $DIR/no-extra-traits.rs:59:24
195    |
196 LL | trait _5 = Sync + ObjB + Send;
197    |                   ---- additional non-auto trait
198 ...
199 LL | type _T23 = dyn ObjA + _5;
200    |                 ----   ^^ trait alias used in trait object type (additional use)
201    |                 |
202    |                 first non-auto trait
203    |
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>
206
207 error[E0225]: only auto traits can be used as additional traits in a trait object
208   --> $DIR/no-extra-traits.rs:62:29
209    |
210 LL | trait _0 = ObjA;
211    |            ---- additional non-auto trait
212 LL | trait _1 = _0;
213    |            -- referenced here (additional use)
214 ...
215 LL | trait _5 = Sync + ObjB + Send;
216    |                   ---- first non-auto trait
217 ...
218 LL | type _T24 = dyn Send + _5 + _1 + Sync;
219    |                        --   ^^ trait alias used in trait object type (additional use)
220    |                        |
221    |                        trait alias used in trait object type (first use)
222    |
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>
225
226 error[E0225]: only auto traits can be used as additional traits in a trait object
227   --> $DIR/no-extra-traits.rs:65:29
228    |
229 LL | trait _0 = ObjA;
230    |            ---- first non-auto trait
231 LL | trait _1 = _0;
232    |            -- referenced here (first use)
233 ...
234 LL | trait _5 = Sync + ObjB + Send;
235    |                   ---- additional non-auto trait
236 ...
237 LL | type _T25 = dyn _1 + Sync + _5 + Send;
238    |                 --          ^^ trait alias used in trait object type (additional use)
239    |                 |
240    |                 trait alias used in trait object type (first use)
241    |
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>
244
245 error[E0225]: only auto traits can be used as additional traits in a trait object
246   --> $DIR/no-extra-traits.rs:68:36
247    |
248 LL | trait _5 = Sync + ObjB + Send;
249    |                   ---- first non-auto trait
250 ...
251 LL | type _T26 = dyn Sync + Send + _5 + ObjA;
252    |                               --   ^^^^ additional non-auto trait
253    |                               |
254    |                               trait alias used in trait object type (first use)
255    |
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>
258
259 error[E0225]: only auto traits can be used as additional traits in a trait object
260   --> $DIR/no-extra-traits.rs:71:38
261    |
262 LL | trait _5 = Sync + ObjB + Send;
263    |                   ---- additional non-auto trait
264 ...
265 LL | type _T27 = dyn Send + Sync + ObjA + _5;
266    |                               ----   ^^ trait alias used in trait object type (additional use)
267    |                               |
268    |                               first non-auto trait
269    |
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>
272
273 error[E0225]: only auto traits can be used as additional traits in a trait object
274   --> $DIR/no-extra-traits.rs:80:17
275    |
276 LL | trait _0 = ObjA;
277    |            ---- first non-auto trait
278 LL | trait _1 = _0;
279    |            -- referenced here (first use)
280 ...
281 LL | trait _5 = Sync + ObjB + Send;
282    |                   ---- additional non-auto trait
283 ...
284 LL | trait _6 = _1 + _5;
285    |            --   -- referenced here (additional use)
286    |            |
287    |            referenced here (first use)
288 ...
289 LL | type _T30 = dyn _6;
290    |                 ^^
291    |                 |
292    |                 trait alias used in trait object type (additional use)
293    |                 trait alias used in trait object type (first use)
294    |
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>
297
298 error[E0225]: only auto traits can be used as additional traits in a trait object
299   --> $DIR/no-extra-traits.rs:83:17
300    |
301 LL | trait _0 = ObjA;
302    |            ---- first non-auto trait
303 LL | trait _1 = _0;
304    |            -- referenced here (first use)
305 ...
306 LL | trait _5 = Sync + ObjB + Send;
307    |                   ---- additional non-auto trait
308 ...
309 LL | trait _6 = _1 + _5;
310    |            --   -- referenced here (additional use)
311    |            |
312    |            referenced here (first use)
313 ...
314 LL | type _T31 = dyn _6 + Send;
315    |                 ^^
316    |                 |
317    |                 trait alias used in trait object type (additional use)
318    |                 trait alias used in trait object type (first use)
319    |
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>
322
323 error[E0225]: only auto traits can be used as additional traits in a trait object
324   --> $DIR/no-extra-traits.rs:86:24
325    |
326 LL | trait _0 = ObjA;
327    |            ---- first non-auto trait
328 LL | trait _1 = _0;
329    |            -- referenced here (first use)
330 ...
331 LL | trait _5 = Sync + ObjB + Send;
332    |                   ---- additional non-auto trait
333 ...
334 LL | trait _6 = _1 + _5;
335    |            --   -- referenced here (additional use)
336    |            |
337    |            referenced here (first use)
338 ...
339 LL | type _T32 = dyn Send + _6;
340    |                        ^^
341    |                        |
342    |                        trait alias used in trait object type (additional use)
343    |                        trait alias used in trait object type (first use)
344    |
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>
347
348 error[E0225]: only auto traits can be used as additional traits in a trait object
349   --> $DIR/no-extra-traits.rs:89:17
350    |
351 LL | trait _0 = ObjA;
352    |            ---- first non-auto trait
353 LL | trait _1 = _0;
354    |            -- referenced here (first use)
355 ...
356 LL | trait _5 = Sync + ObjB + Send;
357    |                   ---- additional non-auto trait
358 ...
359 LL | trait _6 = _1 + _5;
360    |            --   -- referenced here (additional use)
361    |            |
362    |            referenced here (first use)
363 LL | trait _7 = _6;
364    |            --
365    |            |
366    |            referenced here (additional use)
367    |            referenced here (first use)
368 LL | trait _8 = _7;
369    |            --
370    |            |
371    |            referenced here (additional use)
372    |            referenced here (first use)
373 ...
374 LL | type _T33 = dyn _8;
375    |                 ^^
376    |                 |
377    |                 trait alias used in trait object type (additional use)
378    |                 trait alias used in trait object type (first use)
379    |
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>
382
383 error[E0225]: only auto traits can be used as additional traits in a trait object
384   --> $DIR/no-extra-traits.rs:92:17
385    |
386 LL | trait _0 = ObjA;
387    |            ---- first non-auto trait
388 LL | trait _1 = _0;
389    |            -- referenced here (first use)
390 ...
391 LL | trait _5 = Sync + ObjB + Send;
392    |                   ---- additional non-auto trait
393 ...
394 LL | trait _6 = _1 + _5;
395    |            --   -- referenced here (additional use)
396    |            |
397    |            referenced here (first use)
398 LL | trait _7 = _6;
399    |            --
400    |            |
401    |            referenced here (additional use)
402    |            referenced here (first use)
403 LL | trait _8 = _7;
404    |            --
405    |            |
406    |            referenced here (additional use)
407    |            referenced here (first use)
408 ...
409 LL | type _T34 = dyn _8 + Send;
410    |                 ^^
411    |                 |
412    |                 trait alias used in trait object type (additional use)
413    |                 trait alias used in trait object type (first use)
414    |
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>
417
418 error[E0225]: only auto traits can be used as additional traits in a trait object
419   --> $DIR/no-extra-traits.rs:95:24
420    |
421 LL | trait _0 = ObjA;
422    |            ---- first non-auto trait
423 LL | trait _1 = _0;
424    |            -- referenced here (first use)
425 ...
426 LL | trait _5 = Sync + ObjB + Send;
427    |                   ---- additional non-auto trait
428 ...
429 LL | trait _6 = _1 + _5;
430    |            --   -- referenced here (additional use)
431    |            |
432    |            referenced here (first use)
433 LL | trait _7 = _6;
434    |            --
435    |            |
436    |            referenced here (additional use)
437    |            referenced here (first use)
438 LL | trait _8 = _7;
439    |            --
440    |            |
441    |            referenced here (additional use)
442    |            referenced here (first use)
443 ...
444 LL | type _T35 = dyn Send + _8;
445    |                        ^^
446    |                        |
447    |                        trait alias used in trait object type (additional use)
448    |                        trait alias used in trait object type (first use)
449    |
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>
452
453 error[E0225]: only auto traits can be used as additional traits in a trait object
454   --> $DIR/no-extra-traits.rs:103:23
455    |
456 LL | trait _5 = Sync + ObjB + Send;
457    |                   ---- first non-auto trait
458 ...
459 LL | trait _9 = _5 + Sync;
460    |            -- referenced here (first use)
461 LL | trait _10 = Unpin + _9;
462    |                     -- referenced here (first use)
463 LL | 
464 LL | type _T40 = dyn _10 + ObjA;
465    |                 ---   ^^^^ additional non-auto trait
466    |                 |
467    |                 trait alias used in trait object type (first use)
468    |
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>
471
472 error[E0225]: only auto traits can be used as additional traits in a trait object
473   --> $DIR/no-extra-traits.rs:106:24
474    |
475 LL | trait _5 = Sync + ObjB + Send;
476    |                   ---- additional non-auto trait
477 ...
478 LL | trait _9 = _5 + Sync;
479    |            -- referenced here (additional use)
480 LL | trait _10 = Unpin + _9;
481    |                     -- referenced here (additional use)
482 ...
483 LL | type _T41 = dyn ObjA + _10;
484    |                 ----   ^^^ trait alias used in trait object type (additional use)
485    |                 |
486    |                 first non-auto trait
487    |
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>
490
491 error[E0225]: only auto traits can be used as additional traits in a trait object
492   --> $DIR/no-extra-traits.rs:109:23
493    |
494 LL | trait _0 = ObjA;
495    |            ---- additional non-auto trait
496 LL | trait _1 = _0;
497    |            -- referenced here (additional use)
498 ...
499 LL | trait _5 = Sync + ObjB + Send;
500    |                   ---- first non-auto trait
501 ...
502 LL | trait _9 = _5 + Sync;
503    |            -- referenced here (first use)
504 LL | trait _10 = Unpin + _9;
505    |                     -- referenced here (first use)
506 ...
507 LL | type _T42 = dyn _10 + _1;
508    |                 ---   ^^ trait alias used in trait object type (additional use)
509    |                 |
510    |                 trait alias used in trait object type (first use)
511    |
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>
514
515 error[E0225]: only auto traits can be used as additional traits in a trait object
516   --> $DIR/no-extra-traits.rs:112:37
517    |
518 LL | trait _5 = Sync + ObjB + Send;
519    |                   ---- first non-auto trait
520 ...
521 LL | trait _9 = _5 + Sync;
522    |            -- referenced here (first use)
523 LL | trait _10 = Unpin + _9;
524    |                     -- referenced here (first use)
525 ...
526 LL | type _T43 = dyn Send + _10 + Sync + ObjA;
527    |                        ---          ^^^^ additional non-auto trait
528    |                        |
529    |                        trait alias used in trait object type (first use)
530    |
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>
533
534 error[E0225]: only auto traits can be used as additional traits in a trait object
535   --> $DIR/no-extra-traits.rs:115:24
536    |
537 LL | trait _5 = Sync + ObjB + Send;
538    |                   ---- additional non-auto trait
539 ...
540 LL | trait _9 = _5 + Sync;
541    |            -- referenced here (additional use)
542 LL | trait _10 = Unpin + _9;
543    |                     -- referenced here (additional use)
544 ...
545 LL | type _T44 = dyn ObjA + _10 + Send + Sync;
546    |                 ----   ^^^ trait alias used in trait object type (additional use)
547    |                 |
548    |                 first non-auto trait
549    |
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>
552
553 error[E0225]: only auto traits can be used as additional traits in a trait object
554   --> $DIR/no-extra-traits.rs:118:37
555    |
556 LL | trait _0 = ObjA;
557    |            ---- additional non-auto trait
558 LL | trait _1 = _0;
559    |            -- referenced here (additional use)
560 ...
561 LL | trait _5 = Sync + ObjB + Send;
562    |                   ---- first non-auto trait
563 ...
564 LL | trait _9 = _5 + Sync;
565    |            -- referenced here (first use)
566 LL | trait _10 = Unpin + _9;
567    |                     -- referenced here (first use)
568 ...
569 LL | type _T45 = dyn Sync + Send + _10 + _1;
570    |                               ---   ^^ trait alias used in trait object type (additional use)
571    |                               |
572    |                               trait alias used in trait object type (first use)
573    |
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>
576
577 error: aborting due to 28 previous errors
578
579 For more information about this error, try `rustc --explain E0225`.