summaryrefslogtreecommitdiffstats
path: root/src/test/ui/associated-types/hr-associated-type-bound-param-2.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/associated-types/hr-associated-type-bound-param-2.rs')
-rw-r--r--src/test/ui/associated-types/hr-associated-type-bound-param-2.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/test/ui/associated-types/hr-associated-type-bound-param-2.rs b/src/test/ui/associated-types/hr-associated-type-bound-param-2.rs
new file mode 100644
index 000000000..f74c5a859
--- /dev/null
+++ b/src/test/ui/associated-types/hr-associated-type-bound-param-2.rs
@@ -0,0 +1,21 @@
+trait Z<'a, T: ?Sized>
+where
+ T: Z<'a, u16>,
+ //~^ the trait bound `str: Clone` is not satisfied
+ //~| the trait bound `str: Clone` is not satisfied
+ for<'b> <T as Z<'b, u16>>::W: Clone,
+{
+ type W: ?Sized;
+ fn h(&self, x: &T::W) {
+ <T::W>::clone(x);
+ }
+}
+
+impl<'a> Z<'a, u16> for u16 {
+ type W = str;
+ //~^ ERROR the trait bound `str: Clone
+}
+
+fn main() {
+ 1u16.h("abc");
+}