From 8075e05c16f8593973298c2c92beb50b6b430e03 Mon Sep 17 00:00:00 2001 From: Takayuki Maeda Date: Tue, 28 Jun 2022 20:01:38 +0900 Subject: [PATCH] add regression test for #79495 --- src/test/rustdoc-ui/issue-79495.rs | 16 ++++++++++++++++ src/test/rustdoc-ui/issue-79495.stderr | 13 +++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/test/rustdoc-ui/issue-79495.rs create mode 100644 src/test/rustdoc-ui/issue-79495.stderr 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 +