From d53e6f87e94c83651ad1e22f294f6f59d8d1b5d1 Mon Sep 17 00:00:00 2001 From: HMPerson1 Date: Wed, 24 Oct 2018 22:27:47 -0400 Subject: [PATCH] Add tests for more than one level of reference --- tests/ui/mem_discriminant.rs | 6 ++++++ tests/ui/mem_discriminant.stderr | 18 +++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/tests/ui/mem_discriminant.rs b/tests/ui/mem_discriminant.rs index 64d056fb2fe..5ddd90ac8b5 100644 --- a/tests/ui/mem_discriminant.rs +++ b/tests/ui/mem_discriminant.rs @@ -40,10 +40,16 @@ fn main() { mem_discriminant_but_in_a_macro!(&rro); + let rrrrro = &&&rro; + mem::discriminant(&rrrrro); + mem::discriminant(*rrrrro); + // ok mem::discriminant(&Some(2)); mem::discriminant(&None::); mem::discriminant(&Foo::One(5)); mem::discriminant(&Foo::Two(5)); mem::discriminant(ro); + mem::discriminant(*rro); + mem::discriminant(****rrrrro); } diff --git a/tests/ui/mem_discriminant.stderr b/tests/ui/mem_discriminant.stderr index 57e03013392..6414e4c96d6 100644 --- a/tests/ui/mem_discriminant.stderr +++ b/tests/ui/mem_discriminant.stderr @@ -84,5 +84,21 @@ error: calling `mem::discriminant` on non-enum type `&&std::option::Option` | | help: try dereferencing: `*rro` | in this macro invocation -error: aborting due to 10 previous errors +error: calling `mem::discriminant` on non-enum type `&&&&&std::option::Option` + --> $DIR/mem_discriminant.rs:44:5 + | +44 | mem::discriminant(&rrrrro); + | ^^^^^^^^^^^^^^^^^^-------^ + | | + | help: try dereferencing: `****rrrrro` + +error: calling `mem::discriminant` on non-enum type `&&&std::option::Option` + --> $DIR/mem_discriminant.rs:45:5 + | +45 | mem::discriminant(*rrrrro); + | ^^^^^^^^^^^^^^^^^^-------^ + | | + | help: try dereferencing: `****rrrrro` + +error: aborting due to 12 previous errors