diff options
Diffstat (limited to 'tests/ui/consts/const-pattern-not-const-evaluable.rs')
-rw-r--r-- | tests/ui/consts/const-pattern-not-const-evaluable.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/ui/consts/const-pattern-not-const-evaluable.rs b/tests/ui/consts/const-pattern-not-const-evaluable.rs new file mode 100644 index 000000000..dae5343fe --- /dev/null +++ b/tests/ui/consts/const-pattern-not-const-evaluable.rs @@ -0,0 +1,30 @@ +// build-pass (FIXME(62277): could be check-pass?) + +#[derive(PartialEq, Eq)] +enum Cake { + BlackForest, + Marmor, +} +use Cake::*; + +struct Pair<A, B>(A, B); + +const BOO: Pair<Cake, Cake> = Pair(Marmor, BlackForest); +const FOO: Cake = BOO.1; + +const fn foo() -> Cake { + Marmor +} + +const WORKS: Cake = Marmor; + +const GOO: Cake = foo(); + +fn main() { + match BlackForest { + FOO => println!("hi"), + GOO => println!("meh"), + WORKS => println!("möp"), + _ => println!("bye"), + } +} |