diff options
Diffstat (limited to 'src/test/ui/overloaded/overloaded-autoderef-vtable.rs')
| -rw-r--r-- | src/test/ui/overloaded/overloaded-autoderef-vtable.rs | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/src/test/ui/overloaded/overloaded-autoderef-vtable.rs b/src/test/ui/overloaded/overloaded-autoderef-vtable.rs deleted file mode 100644 index f8e6d12088f..00000000000 --- a/src/test/ui/overloaded/overloaded-autoderef-vtable.rs +++ /dev/null @@ -1,39 +0,0 @@ -// run-pass -#![allow(dead_code)] - -use std::ops::Deref; - -struct DerefWithHelper<H, T> { - helper: H, - value: T -} - -trait Helper<T> { - fn helper_borrow(&self) -> &T; -} - -impl<T> Helper<T> for Option<T> { - fn helper_borrow(&self) -> &T { - self.as_ref().unwrap() - } -} - -impl<T, H: Helper<T>> Deref for DerefWithHelper<H, T> { - type Target = T; - - fn deref(&self) -> &T { - self.helper.helper_borrow() - } -} - -struct Foo {x: isize} - -impl Foo { - fn foo(&self) -> isize {self.x} -} - -pub fn main() { - let x: DerefWithHelper<Option<Foo>, Foo> = - DerefWithHelper { helper: Some(Foo {x: 5}), value: Foo { x: 2 } }; - assert_eq!(x.foo(), 5); -} |
