@@ -117,10 +117,10 @@ impl<TId: ArenaId, TValue> Arena<TId, TValue> {
117117 unsafe {
118118 let chunks = self . chunks . get ( ) ;
119119 (
120- ( * chunks)
120+ ( & mut ( * chunks) )
121121 . get_unchecked_mut ( a_chunk)
122122 . get_unchecked_mut ( a_offset) ,
123- ( * chunks)
123+ ( & mut ( * chunks) )
124124 . get_unchecked_mut ( b_chunk)
125125 . get_unchecked_mut ( b_offset) ,
126126 )
@@ -137,7 +137,7 @@ impl<TId: ArenaId, TValue> Index<TId> for Arena<TId, TValue> {
137137 let ( chunk, offset) = Self :: chunk_and_offset ( index) ;
138138 unsafe {
139139 let vec = self . chunks . get ( ) ;
140- ( * vec) . get_unchecked ( chunk) . get_unchecked ( offset)
140+ ( & ( * vec) ) . get_unchecked ( chunk) . get_unchecked ( offset)
141141 }
142142 }
143143}
@@ -179,7 +179,7 @@ impl<'a, TId: ArenaId, TValue> Iterator for ArenaIter<'a, TId, TValue> {
179179 let vec = self . arena . chunks . get ( ) ;
180180 Some ( (
181181 TId :: from_usize ( self . index ) ,
182- ( * vec) . get_unchecked ( chunk) . get_unchecked ( offset) ,
182+ ( & ( * vec) ) . get_unchecked ( chunk) . get_unchecked ( offset) ,
183183 ) )
184184 } ;
185185
@@ -207,7 +207,9 @@ impl<'a, TId: ArenaId, TValue> Iterator for ArenaIterMut<'a, TId, TValue> {
207207 let vec = self . arena . chunks . get ( ) ;
208208 Some ( (
209209 TId :: from_usize ( self . index ) ,
210- ( * vec) . get_unchecked_mut ( chunk) . get_unchecked_mut ( offset) ,
210+ ( & mut ( * vec) )
211+ . get_unchecked_mut ( chunk)
212+ . get_unchecked_mut ( offset) ,
211213 ) )
212214 } ;
213215 self . index += 1 ;
0 commit comments