125 lines
4.7 KiB
Text
125 lines
4.7 KiB
Text
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 <https://github.com/rust-lang/rust/issues/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<const A: usize, const B: usize> Outer<A, B>
|
|
| ^^^^^^^^^^^ expected `i64`, found `usize`
|
|
|
|
|
note: required by a bound in `Outer`
|
|
--> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:14
|
|
|
|
|
LL | struct Outer<const A: i64, const B: i64>();
|
|
| ^^^^^^^^^^^^ 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<const A: usize, const B: usize> Outer<A, B>
|
|
| ^^^^^^^^^^^ expected `i64`, found `usize`
|
|
|
|
|
note: required by a bound in `Outer`
|
|
--> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:5:28
|
|
|
|
|
LL | struct Outer<const A: i64, const B: i64>();
|
|
| ^^^^^^^^^^^^ 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<const A: i64, const B: i64>();
|
|
| ^^^^^^^^^^^^ 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<const A: i64, const B: i64>();
|
|
| ^^^^^^^^^^^^ required by this bound in `Outer`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:17:9
|
|
|
|
|
LL | struct Outer<const A: i64, const B: i64>();
|
|
| ---------------------------------------- `Outer` defines a struct constructor here, which should be called
|
|
...
|
|
LL | fn i() -> Self {
|
|
| ---- expected `Outer<A, B>` because of return type
|
|
...
|
|
LL | Self
|
|
| ^^^^ expected `Outer<A, B>`, found struct constructor
|
|
|
|
|
= note: expected struct `Outer<A, B>`
|
|
found struct constructor `fn() -> Outer<A, B> {Outer::<A, B>}`
|
|
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<const A: i64, const B: i64>();
|
|
| ^^^^^^^^^^^^ 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<const A: i64, const B: i64>();
|
|
| ^^^^^^^^^^^^ 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<const A: i64, const B: i64>();
|
|
| ---------------------------------------- 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<const A: usize, const B: usize> Outer<A, B>
|
|
| ^ expected `i64`, found `usize`
|
|
|
|
error[E0308]: mismatched types
|
|
--> $DIR/ice-125520-layout-mismatch-mulwithoverflow.rs:6:47
|
|
|
|
|
LL | impl<const A: usize, const B: usize> Outer<A, B>
|
|
| ^ 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`.
|