]> git.lizzy.rs Git - rust.git/blobdiff - src/test/run-pass/overloaded-index-autoderef.rs
make `IndexMut` a super trait over `Index`
[rust.git] / src / test / run-pass / overloaded-index-autoderef.rs
index d51956da89409733dbb5e3edd7470ae1148f2801..d5ccf8cd2befb0f4f18e29fc0021ba49f4d814bf 100644 (file)
 
 // Test overloaded indexing combined with autoderef.
 
+#![allow(unknown_features)]
+#![feature(box_syntax)]
+
+use std::ops::{Index, IndexMut};
+
 struct Foo {
     x: int,
     y: int,
 }
 
-impl Index<int,int> for Foo {
+impl Index<int> for Foo {
+    type Output = int;
+
     fn index(&self, z: &int) -> &int {
         if *z == 0 {
             &self.x
@@ -25,7 +32,7 @@ fn index(&self, z: &int) -> &int {
     }
 }
 
-impl IndexMut<int,int> for Foo {
+impl IndexMut<int> for Foo {
     fn index_mut(&mut self, z: &int) -> &mut int {
         if *z == 0 {
             &mut self.x
@@ -76,4 +83,3 @@ fn main() {
     assert_eq!(f[1].get(), 5);
     assert_eq!(f[1].get_from_ref(), 5);
 }
-