diff options
Diffstat (limited to 'tests/ui/consts/underscore_const_names.rs')
-rw-r--r-- | tests/ui/consts/underscore_const_names.rs | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/ui/consts/underscore_const_names.rs b/tests/ui/consts/underscore_const_names.rs new file mode 100644 index 000000000..d0e625bf1 --- /dev/null +++ b/tests/ui/consts/underscore_const_names.rs @@ -0,0 +1,31 @@ +// build-pass (FIXME(62277): could be check-pass?) + +#![deny(unused)] + +trait Trt {} +pub struct Str {} +impl Trt for Str {} + +macro_rules! check_impl { + ($struct:ident,$trait:ident) => { + const _ : () = { + use std::marker::PhantomData; + struct ImplementsTrait<T: $trait>(PhantomData<T>); + let _ = ImplementsTrait::<$struct>(PhantomData); + () + }; + } +} + +const _ : () = (); + +const _ : i32 = 42; +const _ : Str = Str{}; + +check_impl!(Str, Trt); +check_impl!(Str, Trt); + +fn main() { + check_impl!(Str, Trt); + check_impl!(Str, Trt); +} |