error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:16:22 | LL | trait _0 = Obj; | --- | | | additional non-auto trait | first non-auto trait ... LL | type _T00 = dyn _0 + _0; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:19:22 | LL | trait _0 = Obj; | --- | | | additional non-auto trait | first non-auto trait LL | trait _1 = _0; | -- referenced here (first use) ... LL | type _T01 = dyn _1 + _0; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:22:22 | LL | trait _0 = Obj; | --- | | | additional non-auto trait | first non-auto trait LL | trait _1 = _0; | -- | | | referenced here (additional use) | referenced here (first use) ... LL | type _T02 = dyn _1 + _1; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:25:23 | LL | trait _0 = Obj; | --- additional non-auto trait LL | trait _1 = _0; | -- referenced here (additional use) ... LL | type _T03 = dyn Obj + _1; | --- ^^ trait alias used in trait object type (additional use) | | | first non-auto trait | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:28:22 | LL | trait _0 = Obj; | --- first non-auto trait LL | trait _1 = _0; | -- referenced here (first use) ... LL | type _T04 = dyn _1 + Obj; | -- ^^^ additional non-auto trait | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:37:17 | LL | trait _0 = Obj; | --- | | | additional non-auto trait | first non-auto trait LL | trait _1 = _0; | -- referenced here (additional use) ... LL | trait _2 = _0 + _1; | -- -- referenced here (additional use) | | | referenced here (first use) ... LL | type _T10 = dyn _2 + _3; | ^^ | | | trait alias used in trait object type (additional use) | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:40:22 | LL | trait _0 = Obj; | --- additional non-auto trait ... LL | trait _2 = _0 + _1; | -- referenced here (additional use) LL | trait _3 = Obj; | --- first non-auto trait ... LL | type _T11 = dyn _3 + _2; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:43:23 | LL | trait _0 = Obj; | --- additional non-auto trait ... LL | trait _2 = _0 + _1; | -- referenced here (additional use) ... LL | type _T12 = dyn Obj + _2; | --- ^^ trait alias used in trait object type (additional use) | | | first non-auto trait | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:46:17 | LL | trait _0 = Obj; | --- | | | additional non-auto trait | first non-auto trait LL | trait _1 = _0; | -- referenced here (additional use) ... LL | trait _2 = _0 + _1; | -- -- referenced here (additional use) | | | referenced here (first use) ... LL | type _T13 = dyn _2 + Obj; | ^^ | | | trait alias used in trait object type (additional use) | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:49:22 | LL | trait _0 = Obj; | --- first non-auto trait LL | trait _1 = _0; | -- referenced here (first use) ... LL | trait _3 = Obj; | --- additional non-auto trait ... LL | type _T14 = dyn _1 + _3; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:52:22 | LL | trait _0 = Obj; | --- additional non-auto trait LL | trait _1 = _0; | -- referenced here (additional use) ... LL | trait _3 = Obj; | --- first non-auto trait ... LL | type _T15 = dyn _3 + _1; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:55:22 | LL | trait _0 = Obj; | --- first non-auto trait LL | trait _1 = _0; | -- referenced here (first use) ... LL | trait _3 = Obj; | --- additional non-auto trait LL | trait _4 = _3; | -- referenced here (additional use) ... LL | type _T16 = dyn _1 + _4; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:58:22 | LL | trait _0 = Obj; | --- additional non-auto trait LL | trait _1 = _0; | -- referenced here (additional use) ... LL | trait _3 = Obj; | --- first non-auto trait LL | trait _4 = _3; | -- referenced here (first use) ... LL | type _T17 = dyn _4 + _1; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:65:22 | LL | trait _5 = Obj + Send; | --- | | | additional non-auto trait | first non-auto trait LL | LL | type _T20 = dyn _5 + _5; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:68:23 | LL | trait _5 = Obj + Send; | --- additional non-auto trait ... LL | type _T21 = dyn Obj + _5; | --- ^^ trait alias used in trait object type (additional use) | | | first non-auto trait | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:71:22 | LL | trait _5 = Obj + Send; | --- first non-auto trait ... LL | type _T22 = dyn _5 + Obj; | -- ^^^ additional non-auto trait | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:74:36 | LL | trait _5 = Obj + Send; | --- first non-auto trait ... LL | type _T23 = dyn _5 + Send + Sync + Obj; | -- ^^^ additional non-auto trait | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:81:17 | LL | trait _5 = Obj + Send; | --- | | | additional non-auto trait | first non-auto trait ... LL | trait _6 = _5 + _5; // ==> Obj + Send + Obj + Send | -- -- referenced here (additional use) | | | referenced here (first use) LL | LL | type _T30 = dyn _6; | ^^ | | | trait alias used in trait object type (additional use) | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:84:17 | LL | trait _5 = Obj + Send; | --- | | | additional non-auto trait | first non-auto trait ... LL | trait _6 = _5 + _5; // ==> Obj + Send + Obj + Send | -- -- referenced here (additional use) | | | referenced here (first use) ... LL | type _T31 = dyn _6 + Send; | ^^ | | | trait alias used in trait object type (additional use) | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:87:24 | LL | trait _5 = Obj + Send; | --- | | | additional non-auto trait | first non-auto trait ... LL | trait _6 = _5 + _5; // ==> Obj + Send + Obj + Send | -- -- referenced here (additional use) | | | referenced here (first use) ... LL | type _T32 = dyn Send + _6; | ^^ | | | trait alias used in trait object type (additional use) | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:95:22 | LL | trait _5 = Obj + Send; | --- first non-auto trait ... LL | trait _7 = _5 + Sync; | -- referenced here (first use) LL | trait _8 = Unpin + _7; | -- referenced here (first use) LL | LL | type _T40 = dyn _8 + Obj; | -- ^^^ additional non-auto trait | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:98:23 | LL | trait _5 = Obj + Send; | --- additional non-auto trait ... LL | trait _7 = _5 + Sync; | -- referenced here (additional use) LL | trait _8 = Unpin + _7; | -- referenced here (additional use) ... LL | type _T41 = dyn Obj + _8; | --- ^^ trait alias used in trait object type (additional use) | | | first non-auto trait | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:101:22 | LL | trait _3 = Obj; | --- additional non-auto trait LL | trait _4 = _3; | -- referenced here (additional use) ... LL | trait _5 = Obj + Send; | --- first non-auto trait ... LL | trait _7 = _5 + Sync; | -- referenced here (first use) LL | trait _8 = Unpin + _7; | -- referenced here (first use) ... LL | type _T42 = dyn _8 + _4; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:104:22 | LL | trait _3 = Obj; | --- first non-auto trait LL | trait _4 = _3; | -- referenced here (first use) ... LL | trait _5 = Obj + Send; | --- additional non-auto trait ... LL | trait _7 = _5 + Sync; | -- referenced here (additional use) LL | trait _8 = Unpin + _7; | -- referenced here (additional use) ... LL | type _T43 = dyn _4 + _8; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:107:36 | LL | trait _3 = Obj; | --- first non-auto trait LL | trait _4 = _3; | -- referenced here (first use) ... LL | trait _5 = Obj + Send; | --- additional non-auto trait ... LL | trait _7 = _5 + Sync; | -- referenced here (additional use) LL | trait _8 = Unpin + _7; | -- referenced here (additional use) ... LL | type _T44 = dyn _4 + Send + Sync + _8; | -- ^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: Obj + Obj {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:117:22 | LL | trait _9 = for<'a> ObjL<'a>; | ---------------- first non-auto trait LL | trait _10 = for<'b> ObjL<'b>; | ---------------- additional non-auto trait LL | type _T50 = dyn _9 + _10; | -- ^^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = 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> {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error[E0225]: only auto traits can be used as additional traits in a trait object --> $DIR/no-duplicates.rs:123:23 | LL | trait _11 = ObjT fn(&'a u8)>; | ------------------------ first non-auto trait LL | trait _12 = ObjT fn(&'b u8)>; | ------------------------ additional non-auto trait LL | type _T60 = dyn _11 + _12; | --- ^^^ trait alias used in trait object type (additional use) | | | trait alias used in trait object type (first use) | = help: consider creating a new trait with all of these as supertraits and using that trait here instead: `trait NewTrait: ObjT fn(&'a u8)> + ObjT fn(&'b u8)> {}` = note: auto-traits like `Send` and `Sync` are traits that have special properties; for more information on them, visit error: aborting due to 27 previous errors For more information about this error, try `rustc --explain E0225`.