error: `default` is not followed by an item --> $DIR/default.rs:23:5 | LL | default pub fn foo() -> T { T::default() } | ^^^^^^^ the `default` qualifier | = note: only `fn`, `const`, `type`, or `impl` items may be prefixed by `default` error: non-item in item list --> $DIR/default.rs:23:13 | LL | impl Foo for u32 { | - item list starts here LL | default pub fn foo() -> T { T::default() } | ^^^ non-item starts here ... LL | } | - item list ends here error[E0449]: visibility qualifiers are not permitted here --> $DIR/default.rs:17:5 | LL | pub default fn foo() -> T { | ^^^ | = note: trait items always share the visibility of their trait warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes --> $DIR/default.rs:3:12 | LL | #![feature(specialization)] | ^^^^^^^^^^^^^^ | = note: see issue #31844 for more information = help: consider using `min_specialization` instead, which is more stable and complete = note: `#[warn(incomplete_features)]` on by default error[E0046]: not all trait items implemented, missing: `foo` --> $DIR/default.rs:22:1 | LL | fn foo() -> T; | -------------------------- `foo` from trait ... LL | impl Foo for u32 { | ^^^^^^^^^^^^^^^^ missing `foo` in implementation error: aborting due to 4 previous errors; 1 warning emitted Some errors have detailed explanations: E0046, E0449. For more information about an error, try `rustc --explain E0046`.