| warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes |
| --> $DIR/specialization-default-types.rs:5:12 |
| | |
| LL | #![feature(specialization)] |
| | ^^^^^^^^^^^^^^ |
| | |
| = note: `#[warn(incomplete_features)]` on by default |
| = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information |
| |
| error[E0308]: mismatched types |
| --> $DIR/specialization-default-types.rs:15:9 |
| | |
| LL | default type Output = Box<T>; |
| | ----------------------------- expected this associated type |
| LL | default fn generate(self) -> Self::Output { |
| | ------------ expected `<T as Example>::Output` because of return type |
| LL | Box::new(self) |
| | ^^^^^^^^^^^^^^ expected associated type, found struct `std::boxed::Box` |
| | |
| = note: expected associated type `<T as Example>::Output` |
| found struct `std::boxed::Box<T>` |
| |
| error[E0308]: mismatched types |
| --> $DIR/specialization-default-types.rs:25:5 |
| | |
| LL | fn trouble<T>(t: T) -> Box<T> { |
| | ------ expected `std::boxed::Box<T>` because of return type |
| LL | Example::generate(t) |
| | ^^^^^^^^^^^^^^^^^^^^ expected struct `std::boxed::Box`, found associated type |
| | |
| = note: expected struct `std::boxed::Box<T>` |
| found associated type `<T as Example>::Output` |
| = help: consider constraining the associated type `<T as Example>::Output` to `std::boxed::Box<T>` |
| = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html |
| |
| error: aborting due to 2 previous errors; 1 warning emitted |
| |
| For more information about this error, try `rustc --explain E0308`. |