2 #![allow(incomplete_features)]
4 associated_type_bounds,
7 return_position_impl_trait_in_trait,
10 use std::marker::Destruct;
12 const fn cmp(a: &impl ~const PartialEq) -> bool {
16 const fn wrap(x: impl ~const PartialEq + ~const Destruct)
17 -> impl ~const PartialEq + ~const Destruct
24 fn huh() -> impl ~const PartialEq + ~const Destruct + Copy;
27 impl const Foo for () {
28 fn huh() -> impl ~const PartialEq + ~const Destruct + Copy {
34 assert!(cmp(&0xDEADBEEFu32));
36 assert!(wrap(123) == wrap(123));
37 assert!(wrap(123) != wrap(456));
38 let x = <() as Foo>::huh();
47 const fn rpit() -> impl ~const T { S }
49 const fn apit(_: impl ~const T + ~const Destruct) {}
51 const fn rpit_assoc_bound() -> impl IntoIterator<Item: ~const T> { Some(S) }
53 const fn apit_assoc_bound(_: impl IntoIterator<Item: ~const T> + ~const Destruct) {}