]> git.lizzy.rs Git - rust.git/commitdiff
Fix bug where &str's lengths were not copied.
authorScott Olson <scott@solson.me>
Sun, 27 Mar 2016 05:57:14 +0000 (23:57 -0600)
committerScott Olson <scott@solson.me>
Sun, 27 Mar 2016 05:57:14 +0000 (23:57 -0600)
src/interpreter.rs

index a80c9ba6bdb93f943adbed9fee2f35c0e47018a3..fcdf2e8f4646d260e8f1502eb5dea15fef7e2f12 100644 (file)
@@ -708,7 +708,7 @@ fn eval_lvalue(&mut self, lvalue: &mir::Lvalue<'tcx>) -> EvalResult<Lvalue> {
                         let pointee_ty = pointee_type(base_ty).expect("Deref of non-pointer");
                         let ptr = try!(self.memory.read_ptr(base_ptr));
                         let extra = match pointee_ty.sty {
-                            ty::TySlice(_) => {
+                            ty::TySlice(_) | ty::TyStr => {
                                 let len_ptr = base_ptr.offset(self.memory.pointer_size as isize);
                                 let len = try!(self.memory.read_usize(len_ptr));
                                 LvalueExtra::Length(len)