error[E0379]: trait fns cannot be declared const --> $DIR/issue-54954.rs:7:5 | LL | const fn const_val() -> usize { | ^^^^^ trait fns cannot be const error[E0283]: type annotations needed --> $DIR/issue-54954.rs:3:24 | LL | const ARR_LEN: usize = Tt::const_val::<[i8; 123]>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | cannot infer type | help: consider specifying the type argument in the function call: `Tt::const_val::<[i8; 123]>::` ... LL | const fn const_val() -> usize { | --------- - required by this bound in `Tt::const_val` | = note: cannot resolve `_: Tt` error[E0080]: evaluation of constant value failed --> $DIR/issue-54954.rs:13:15 | LL | fn f(z: [f32; ARR_LEN]) -> [f32; ARR_LEN] { | ^^^^^^^ referenced constant has errors error[E0080]: evaluation of constant value failed --> $DIR/issue-54954.rs:13:34 | LL | fn f(z: [f32; ARR_LEN]) -> [f32; ARR_LEN] { | ^^^^^^^ referenced constant has errors error: aborting due to 4 previous errors Some errors have detailed explanations: E0080, E0283, E0379. For more information about an error, try `rustc --explain E0080`.