@@ -71,7 +71,7 @@ impl<T: Copy> Deque<T> {
71
71
}
72
72
73
73
fn pop_front ( & mut self ) -> T {
74
- let t: T = get ( self . elts , self . lo ) ;
74
+ let t = { * get ( self . elts , self . lo ) } ;
75
75
self . elts [ self . lo ] = None ;
76
76
self . lo = ( self . lo + 1 u) % self . elts . len ( ) ;
77
77
self . nelts -= 1 u;
@@ -82,19 +82,19 @@ impl<T: Copy> Deque<T> {
82
82
if self . hi == 0 u {
83
83
self . hi = self . elts . len ( ) - 1 u;
84
84
} else { self . hi -= 1 u; }
85
- let t: T = get ( self . elts , self . hi ) ;
85
+ let t = { * get ( self . elts , self . hi ) } ;
86
86
self . elts [ self . hi ] = None ;
87
87
self . nelts -= 1 u;
88
88
t
89
89
}
90
90
91
- fn peek_front ( & self ) -> T { get ( self . elts , self . lo ) }
91
+ fn peek_front ( & self ) -> T { * get ( self . elts , self . lo ) }
92
92
93
- fn peek_back ( & self ) -> T { get ( self . elts , self . hi - 1 u) }
93
+ fn peek_back ( & self ) -> T { * get ( self . elts , self . hi - 1 u) }
94
94
95
95
fn get ( & self , i : int ) -> T {
96
96
let idx = ( self . lo + ( i as uint ) ) % self . elts . len ( ) ;
97
- get ( self . elts , idx)
97
+ * get ( self . elts , idx)
98
98
}
99
99
}
100
100
@@ -116,8 +116,8 @@ fn grow<T: Copy>(nelts: uint, lo: uint, elts: &[Option<T>]) -> ~[Option<T>] {
116
116
rv
117
117
}
118
118
119
- fn get < T : Copy > ( elts : & [ Option < T > ] , i : uint ) -> T {
120
- match elts[ i] { Some ( t) => t, _ => fail ! ( ) }
119
+ fn get < T > ( elts : & r/ [ Option < T > ] , i : uint ) -> & r / T {
120
+ match elts[ i] { Some ( ref t) => t, _ => fail ! ( ) }
121
121
}
122
122
123
123
#[ cfg( test) ]
0 commit comments