From 582a17101dd0ba337f27d4a09feae1a0af6cc1e3 Mon Sep 17 00:00:00 2001 From: Bastian Kauschke Date: Wed, 27 Jan 2021 12:21:19 +0100 Subject: [PATCH] add const_evaluatable_checked test --- .../elaborate-trait-pred.rs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/test/ui/const-generics/const_evaluatable_checked/elaborate-trait-pred.rs diff --git a/src/test/ui/const-generics/const_evaluatable_checked/elaborate-trait-pred.rs b/src/test/ui/const-generics/const_evaluatable_checked/elaborate-trait-pred.rs new file mode 100644 index 0000000000000..4a4fd1e33117f --- /dev/null +++ b/src/test/ui/const-generics/const_evaluatable_checked/elaborate-trait-pred.rs @@ -0,0 +1,24 @@ +// run-pass +// Test that we use the elaborated predicates from traits +// to satisfy const evaluatable predicates. +#![feature(const_generics, const_evaluatable_checked)] +#![allow(incomplete_features)] +use std::mem::size_of; + +trait Foo: Sized +where + [(); size_of::()]: Sized, +{ +} + +impl Foo for u64 {} +impl Foo for u32 {} + +fn foo() -> [u8; size_of::()] { + [0; size_of::()] +} + +fn main() { + assert_eq!(foo::(), [0; 4]); + assert_eq!(foo::(), [0; 8]); +}