diff --git a/src/test/rustdoc-ui/issue-79495.rs b/src/test/rustdoc-ui/issue-79495.rs new file mode 100644 index 0000000000000..f927dd189038a --- /dev/null +++ b/src/test/rustdoc-ui/issue-79495.rs @@ -0,0 +1,16 @@ +#![feature(arbitrary_enum_discriminant, core_intrinsics)] + +extern crate core; +use core::intrinsics::discriminant_value; + +#[repr(usize)] +enum MyWeirdOption { + None = 0, + Some(T) = std::mem::size_of::(), + //~^ ERROR generic parameters may not be used in const operations +} + +fn main() { + assert_eq!(discriminant_value(&MyWeirdOption::::None), 0); + assert_eq!(discriminant_value(&MyWeirdOption::Some(0u8)), 1); +} diff --git a/src/test/rustdoc-ui/issue-79495.stderr b/src/test/rustdoc-ui/issue-79495.stderr new file mode 100644 index 0000000000000..4fe75950796dd --- /dev/null +++ b/src/test/rustdoc-ui/issue-79495.stderr @@ -0,0 +1,13 @@ +error: generic parameters may not be used in const operations + --> $DIR/issue-79495.rs:9:35 + | +LL | Some(T) = std::mem::size_of::(), + | ^ cannot perform const operation using `T` + | + = note: type parameters may not be used in const expressions + = help: use `#![feature(generic_const_exprs)]` to allow generic const expressions + +error: Compilation failed, aborting rustdoc + +error: aborting due to 2 previous errors +