From 9facb6c7ddcd63020b406746926bcee5dc288044 Mon Sep 17 00:00:00 2001 From: Takayuki Maeda Date: Thu, 30 Jun 2022 13:43:29 +0900 Subject: [PATCH] add regression test for #50439 --- src/test/ui/consts/issue-50439.rs | 29 +++++++++++++++++++++++++++ src/test/ui/consts/issue-50439.stderr | 10 +++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/test/ui/consts/issue-50439.rs create mode 100644 src/test/ui/consts/issue-50439.stderr diff --git a/src/test/ui/consts/issue-50439.rs b/src/test/ui/consts/issue-50439.rs new file mode 100644 index 0000000000000..0be7c405473ca --- /dev/null +++ b/src/test/ui/consts/issue-50439.rs @@ -0,0 +1,29 @@ +#![feature(specialization)] +#![allow(incomplete_features)] + +pub trait ReflectDrop { + const REFLECT_DROP: bool = false; +} + +impl ReflectDrop for T where T: Clone {} + +pub trait PinDropInternal { + fn is_valid() + where + Self: ReflectDrop; +} + +struct Bears(T); + +default impl ReflectDrop for Bears {} + +impl PinDropInternal for Bears { + fn is_valid() + where + Self: ReflectDrop, + { + let _ = [(); 0 - !!( as ReflectDrop>::REFLECT_DROP) as usize]; //~ ERROR constant expression depends on a generic parameter + } +} + +fn main() {} diff --git a/src/test/ui/consts/issue-50439.stderr b/src/test/ui/consts/issue-50439.stderr new file mode 100644 index 0000000000000..3fbdf33b2d881 --- /dev/null +++ b/src/test/ui/consts/issue-50439.stderr @@ -0,0 +1,10 @@ +error: constant expression depends on a generic parameter + --> $DIR/issue-50439.rs:25:22 + | +LL | let _ = [(); 0 - !!( as ReflectDrop>::REFLECT_DROP) as usize]; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: this may fail depending on what value the parameter takes + +error: aborting due to previous error +