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