about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/ui/rfc-2632-const-trait-impl/const-impl-trait.rs25
1 files changed, 23 insertions, 2 deletions
diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-impl-trait.rs b/src/test/ui/rfc-2632-const-trait-impl/const-impl-trait.rs
index 2059f6d79a5..0622f96e70d 100644
--- a/src/test/ui/rfc-2632-const-trait-impl/const-impl-trait.rs
+++ b/src/test/ui/rfc-2632-const-trait-impl/const-impl-trait.rs
@@ -1,5 +1,11 @@
 // check-pass
-#![feature(associated_type_bounds, const_trait_impl, const_cmp)]
+#![allow(incomplete_features)]
+#![feature(
+    associated_type_bounds,
+    const_trait_impl,
+    const_cmp,
+    return_position_impl_trait_in_trait,
+)]
 
 use std::marker::Destruct;
 
@@ -7,15 +13,30 @@ const fn cmp(a: &impl ~const PartialEq) -> bool {
     a == a
 }
 
-const fn wrap(x: impl ~const PartialEq + ~const Destruct) -> impl ~const PartialEq + ~const Destruct {
+const fn wrap(x: impl ~const PartialEq + ~const Destruct)
+    -> impl ~const PartialEq + ~const Destruct
+{
     x
 }
 
+#[const_trait]
+trait Foo {
+    fn huh() -> impl ~const PartialEq + ~const Destruct + Copy;
+}
+
+impl const Foo for () {
+    fn huh() -> impl ~const PartialEq + ~const Destruct + Copy {
+        123
+    }
+}
+
 const _: () = {
     assert!(cmp(&0xDEADBEEFu32));
     assert!(cmp(&()));
     assert!(wrap(123) == wrap(123));
     assert!(wrap(123) != wrap(456));
+    let x = <() as Foo>::huh();
+    assert!(x == x);
 };
 
 #[const_trait]