]> git.proxmox.com Git - rustc.git/blobdiff - src/test/ui/traits/default-method/supervtable.rs
Merge tag 'debian/1.52.1+dfsg1-1_exp2' into proxmox/buster
[rustc.git] / src / test / ui / traits / default-method / supervtable.rs
diff --git a/src/test/ui/traits/default-method/supervtable.rs b/src/test/ui/traits/default-method/supervtable.rs
new file mode 100644 (file)
index 0000000..939ad51
--- /dev/null
@@ -0,0 +1,28 @@
+// run-pass
+
+
+// Tests that we can call a function bounded over a supertrait from
+// a default method
+
+fn require_y<T: Y>(x: T) -> isize { x.y() }
+
+trait Y {
+    fn y(self) -> isize;
+}
+
+
+trait Z: Y + Sized {
+    fn x(self) -> isize {
+        require_y(self)
+    }
+}
+
+impl Y for isize {
+    fn y(self) -> isize { self }
+}
+
+impl Z for isize {}
+
+pub fn main() {
+    assert_eq!(12.x(), 12);
+}