summaryrefslogtreecommitdiffstats
path: root/src/test/ui/consts/issue-50439.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/consts/issue-50439.rs')
-rw-r--r--src/test/ui/consts/issue-50439.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/consts/issue-50439.rs b/src/test/ui/consts/issue-50439.rs
new file mode 100644
index 000000000..0be7c4054
--- /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<T> ReflectDrop for T where T: Clone {}
+
+pub trait PinDropInternal {
+ fn is_valid()
+ where
+ Self: ReflectDrop;
+}
+
+struct Bears<T>(T);
+
+default impl<T> ReflectDrop for Bears<T> {}
+
+impl<T: Sized> PinDropInternal for Bears<T> {
+ fn is_valid()
+ where
+ Self: ReflectDrop,
+ {
+ let _ = [(); 0 - !!(<Bears<T> as ReflectDrop>::REFLECT_DROP) as usize]; //~ ERROR constant expression depends on a generic parameter
+ }
+}
+
+fn main() {}