1 error[E0277]: a collection of type `i32` cannot be built from an iterator over elements of type `i32`
2 --> $DIR/type-check-defaults.rs:16:19
4 LL | struct WellFormed<Z = Foo<i32, i32>>(Z);
5 | ^ a collection of type `i32` cannot be built from `std::iter::Iterator<Item=i32>`
7 = help: the trait `std::iter::FromIterator<i32>` is not implemented for `i32`
8 note: required by `Foo`
9 --> $DIR/type-check-defaults.rs:15:1
11 LL | struct Foo<T, U: FromIterator<T>>(T, U);
12 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
14 error[E0277]: a collection of type `i32` cannot be built from an iterator over elements of type `i32`
15 --> $DIR/type-check-defaults.rs:18:27
17 LL | struct WellFormedNoBounds<Z:?Sized = Foo<i32, i32>>(Z);
18 | ^ a collection of type `i32` cannot be built from `std::iter::Iterator<Item=i32>`
20 = help: the trait `std::iter::FromIterator<i32>` is not implemented for `i32`
21 note: required by `Foo`
22 --> $DIR/type-check-defaults.rs:15:1
24 LL | struct Foo<T, U: FromIterator<T>>(T, U);
25 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
27 error[E0277]: the trait bound `std::string::String: std::marker::Copy` is not satisfied
28 --> $DIR/type-check-defaults.rs:21:1
30 LL | struct Bounds<T:Copy=String>(T);
31 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::string::String`
33 note: required by `Bounds`
34 --> $DIR/type-check-defaults.rs:21:1
36 LL | struct Bounds<T:Copy=String>(T);
37 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39 error[E0277]: the trait bound `std::string::String: std::marker::Copy` is not satisfied
40 --> $DIR/type-check-defaults.rs:24:1
42 LL | struct WhereClause<T=String>(T) where T: Copy;
43 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::string::String`
45 note: required by `WhereClause`
46 --> $DIR/type-check-defaults.rs:24:1
48 LL | struct WhereClause<T=String>(T) where T: Copy;
49 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
51 error[E0277]: the trait bound `std::string::String: std::marker::Copy` is not satisfied
52 --> $DIR/type-check-defaults.rs:27:1
54 LL | trait TraitBound<T:Copy=String> {}
55 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `std::string::String`
57 note: required by `TraitBound`
58 --> $DIR/type-check-defaults.rs:27:1
60 LL | trait TraitBound<T:Copy=String> {}
61 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
63 error[E0277]: the trait bound `T: std::marker::Copy` is not satisfied
64 --> $DIR/type-check-defaults.rs:31:1
66 LL | trait Base<T = String>: Super<T> { }
67 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `std::marker::Copy` is not implemented for `T`
69 = help: consider adding a `where T: std::marker::Copy` bound
70 note: required by `Super`
71 --> $DIR/type-check-defaults.rs:30:1
73 LL | trait Super<T: Copy> { }
74 | ^^^^^^^^^^^^^^^^^^^^
76 error[E0277]: cannot add `u8` to `i32`
77 --> $DIR/type-check-defaults.rs:34:1
79 LL | trait ProjectionPred<T:Iterator = IntoIter<i32>> where T::Item : Add<u8> {}
80 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no implementation for `i32 + u8`
82 = help: the trait `std::ops::Add<u8>` is not implemented for `i32`
83 note: required by `ProjectionPred`
84 --> $DIR/type-check-defaults.rs:34:1
86 LL | trait ProjectionPred<T:Iterator = IntoIter<i32>> where T::Item : Add<u8> {}
87 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
89 error: aborting due to 7 previous errors
91 For more information about this error, try `rustc --explain E0277`.