warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
  --> $DIR/non-defaulted-item-fail.rs:1:12
   |
LL | #![feature(specialization, associated_type_defaults)]
   |            ^^^^^^^^^^^^^^
   |
   = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information
   = help: consider using `min_specialization` instead, which is more stable and complete
   = note: `#[warn(incomplete_features)]` on by default

error[E0520]: `Ty` specializes an item from a parent `impl`, but that item is not marked `default`
  --> $DIR/non-defaulted-item-fail.rs:30:5
   |
LL | impl<T> Foo for Box<T> {
   | ---------------------- parent `impl` is here
...
LL |     type Ty = Vec<()>;
   |     ^^^^^^^ cannot specialize default item `Ty`
   |
   = note: to specialize, `Ty` in the parent `impl` must be marked `default`

error[E0520]: `CONST` specializes an item from a parent `impl`, but that item is not marked `default`
  --> $DIR/non-defaulted-item-fail.rs:32:5
   |
LL | impl<T> Foo for Box<T> {
   | ---------------------- parent `impl` is here
...
LL |     const CONST: u8 = 42;
   |     ^^^^^^^^^^^^^^^ cannot specialize default item `CONST`
   |
   = note: to specialize, `CONST` in the parent `impl` must be marked `default`

error[E0520]: `foo` specializes an item from a parent `impl`, but that item is not marked `default`
  --> $DIR/non-defaulted-item-fail.rs:34:5
   |
LL | impl<T> Foo for Box<T> {
   | ---------------------- parent `impl` is here
...
LL |     fn foo(&self) -> bool { true }
   |     ^^^^^^^^^^^^^^^^^^^^^ cannot specialize default item `foo`
   |
   = note: to specialize, `foo` in the parent `impl` must be marked `default`

error[E0520]: `Ty` specializes an item from a parent `impl`, but that item is not marked `default`
  --> $DIR/non-defaulted-item-fail.rs:46:5
   |
LL | impl<T> Foo for Vec<T> {}
   | ---------------------- parent `impl` is here
...
LL |     type Ty = Vec<()>;
   |     ^^^^^^^ cannot specialize default item `Ty`
   |
   = note: to specialize, `Ty` in the parent `impl` must be marked `default`

error[E0520]: `CONST` specializes an item from a parent `impl`, but that item is not marked `default`
  --> $DIR/non-defaulted-item-fail.rs:48:5
   |
LL | impl<T> Foo for Vec<T> {}
   | ---------------------- parent `impl` is here
...
LL |     const CONST: u8 = 42;
   |     ^^^^^^^^^^^^^^^ cannot specialize default item `CONST`
   |
   = note: to specialize, `CONST` in the parent `impl` must be marked `default`

error[E0520]: `foo` specializes an item from a parent `impl`, but that item is not marked `default`
  --> $DIR/non-defaulted-item-fail.rs:50:5
   |
LL | impl<T> Foo for Vec<T> {}
   | ---------------------- parent `impl` is here
...
LL |     fn foo(&self) -> bool { true }
   |     ^^^^^^^^^^^^^^^^^^^^^ cannot specialize default item `foo`
   |
   = note: to specialize, `foo` in the parent `impl` must be marked `default`

error: aborting due to 6 previous errors; 1 warning emitted

For more information about this error, try `rustc --explain E0520`.
