-#![allow(const_err)]
+#![warn(const_err)]
trait ZeroSized: Sized {
const I_AM_ZERO_SIZED: ();
}
impl<T: Sized> ZeroSized for T {
- const I_AM_ZERO_SIZED: () = [()][std::mem::size_of::<Self>()];
+ const I_AM_ZERO_SIZED: () = [()][std::mem::size_of::<Self>()]; //~ WARN any use of this value
fn requires_zero_size(self) {
let () = Self::I_AM_ZERO_SIZED; //~ ERROR erroneous constant encountered
println!("requires_zero_size called");
+warning: any use of this value will cause an error
+ --> $DIR/assoc_const_generic_impl.rs:9:34
+ |
+LL | const I_AM_ZERO_SIZED: () = [()][std::mem::size_of::<Self>()];
+ | -----------------------------^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^-
+ | |
+ | index out of bounds: the len is 1 but the index is 4
+ |
+note: lint level defined here
+ --> $DIR/assoc_const_generic_impl.rs:1:9
+ |
+LL | #![warn(const_err)]
+ | ^^^^^^^^^
+
error: erroneous constant encountered
--> $DIR/assoc_const_generic_impl.rs:11:18
|