error[E0128]: generic parameter defaults cannot reference parameters before they are declared --> $DIR/invalid-type-param-default.rs:12:12 | LL | fn mdn(_: T) {} | ^^^^^^^ cannot reference `T` before it is declared error: defaults for generic parameters are not allowed here --> $DIR/invalid-type-param-default.rs:7:8 | LL | fn avg(_: T) {} | ^^^^^^^ | = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #36887 = note: `#[deny(invalid_type_param_default)]` (part of `#[deny(future_incompatible)]`) on by default error: defaults for generic parameters are not allowed here --> $DIR/invalid-type-param-default.rs:12:8 | LL | fn mdn(_: T) {} | ^^^^^^^^^^^ | = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #36887 error: defaults for generic parameters are not allowed here --> $DIR/invalid-type-param-default.rs:18:6 | LL | impl S {} | ^^^^^^^ | = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #36887 error: aborting due to 4 previous errors For more information about this error, try `rustc --explain E0128`. Future incompatibility report: Future breakage diagnostic: error: defaults for generic parameters are not allowed here --> $DIR/invalid-type-param-default.rs:7:8 | LL | fn avg(_: T) {} | ^^^^^^^ | = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #36887 = note: `#[deny(invalid_type_param_default)]` (part of `#[deny(future_incompatible)]`) on by default Future breakage diagnostic: error: defaults for generic parameters are not allowed here --> $DIR/invalid-type-param-default.rs:12:8 | LL | fn mdn(_: T) {} | ^^^^^^^^^^^ | = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #36887 = note: `#[deny(invalid_type_param_default)]` (part of `#[deny(future_incompatible)]`) on by default Future breakage diagnostic: error: defaults for generic parameters are not allowed here --> $DIR/invalid-type-param-default.rs:18:6 | LL | impl S {} | ^^^^^^^ | = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! = note: for more information, see issue #36887 = note: `#[deny(invalid_type_param_default)]` (part of `#[deny(future_incompatible)]`) on by default