error[E0379]: functions in traits cannot be declared const
  --> $DIR/issue-54954.rs:5:5
   |
LL |     const fn const_val<T: Sized>() -> usize {
   |     ^^^^^ functions in traits cannot be const

error[E0790]: cannot call associated function on trait without specifying the corresponding `impl` type
  --> $DIR/issue-54954.rs:1:24
   |
LL |   const ARR_LEN: usize = Tt::const_val::<[i8; 123]>();
   |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot call associated function of trait
...
LL | /     const fn const_val<T: Sized>() -> usize {
LL | |
LL | |         core::mem::size_of::<T>()
LL | |     }
   | |_____- `Tt::const_val` defined here

note: erroneous constant used
  --> $DIR/issue-54954.rs:11:15
   |
LL | fn f(z: [f32; ARR_LEN]) -> [f32; ARR_LEN] {
   |               ^^^^^^^

note: erroneous constant used
  --> $DIR/issue-54954.rs:11:34
   |
LL | fn f(z: [f32; ARR_LEN]) -> [f32; ARR_LEN] {
   |                                  ^^^^^^^

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0379, E0790.
For more information about an error, try `rustc --explain E0379`.
