warning: the feature `generic_const_exprs` is incomplete and may not be safe to use and/or cause compiler crashes --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:2:12 | LL | #![feature(generic_const_exprs)] | ^^^^^^^^^^^^^^^^^^^ | = note: see issue #76560 for more information = note: `#[warn(incomplete_features)]` on by default error: the constant `A` is not of type `i64` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:38 | LL | impl Outer | ^^^^^^^^^^^ expected `i64`, found `usize` | note: required by a bound in `Outer` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:14 | LL | struct Outer(); | ^^^^^^^^^^^^ required by this bound in `Outer` error: the constant `B` is not of type `i64` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:38 | LL | impl Outer | ^^^^^^^^^^^ expected `i64`, found `usize` | note: required by a bound in `Outer` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:28 | LL | struct Outer(); | ^^^^^^^^^^^^ required by this bound in `Outer` error: the constant `A` is not of type `i64` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:14:15 | LL | fn i() -> Self { | ^^^^ expected `i64`, found `usize` | note: required by a bound in `Outer` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:14 | LL | struct Outer(); | ^^^^^^^^^^^^ required by this bound in `Outer` error: the constant `B` is not of type `i64` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:14:15 | LL | fn i() -> Self { | ^^^^ expected `i64`, found `usize` | note: required by a bound in `Outer` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:28 | LL | struct Outer(); | ^^^^^^^^^^^^ required by this bound in `Outer` error[E0308]: mismatched types --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:17:9 | LL | struct Outer(); | ---------------------------------------- `Outer` defines a struct constructor here, which should be called ... LL | fn i() -> Self { | ---- expected `Outer` because of return type ... LL | Self | ^^^^ expected `Outer`, found struct constructor | = note: expected struct `Outer` found struct constructor `fn() -> Outer {Outer::}` help: use parentheses to construct this tuple struct | LL | Self() | ++ error: the constant `A` is not of type `i64` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:17:9 | LL | Self | ^^^^ expected `i64`, found `usize` | note: required by a bound in `Outer` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:14 | LL | struct Outer(); | ^^^^^^^^^^^^ required by this bound in `Outer` error: the constant `B` is not of type `i64` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:17:9 | LL | Self | ^^^^ expected `i64`, found `usize` | note: required by a bound in `Outer` --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:28 | LL | struct Outer(); | ^^^^^^^^^^^^ required by this bound in `Outer` error[E0599]: no function or associated item named `o` found for struct `Outer` in the current scope --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:25:20 | LL | struct Outer(); | ---------------------------------------- function or associated item `o` not found for this struct ... LL | Outer::<1, 1>::o(); | ^ function or associated item not found in `Outer<1, 1>` error[E0308]: mismatched types --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:44 | LL | impl Outer | ^ expected `i64`, found `usize` error[E0308]: mismatched types --> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:47 | LL | impl Outer | ^ expected `i64`, found `usize` error: aborting due to 10 previous errors; 1 warning emitted Some errors have detailed explanations: E0308, E0599. For more information about an error, try `rustc --explain E0308`.