about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorPatrick Walton <pcwalton@mimiga.net>2014-07-07 16:35:15 -0700
committerPatrick Walton <pcwalton@mimiga.net>2014-07-17 14:05:36 -0700
commitde70d76373e05fcf0f421cedb185b08de10a714c (patch)
treeccfdaa415ce2bb947f40746a3b06a8980ab6cd16 /src/test
parentca24abd4d2d02dd96ef323074c9a21d44b3fd202 (diff)
downloadrust-de70d76373e05fcf0f421cedb185b08de10a714c.tar.gz
rust-de70d76373e05fcf0f421cedb185b08de10a714c.zip
librustc: Remove cross-borrowing of `Box<T>` to `&T` from the language,
except where trait objects are involved.

Part of issue #15349, though I'm leaving it open for trait objects.
Cross borrowing for trait objects remains because it is needed until we
have DST.

This will break code like:

    fn foo(x: &int) { ... }

    let a = box 3i;
    foo(a);

Change this code to:

    fn foo(x: &int) { ... }

    let a = box 3i;
    foo(&*a);

[breaking-change]
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/borrowck-bad-nested-calls-free.rs2
-rw-r--r--src/test/compile-fail/borrowck-bad-nested-calls-move.rs2
-rw-r--r--src/test/compile-fail/borrowck-closures-use-after-free.rs2
-rw-r--r--src/test/compile-fail/borrowck-lend-flow-loop.rs6
-rw-r--r--src/test/compile-fail/borrowck-loan-blocks-mut-uniq.rs2
-rw-r--r--src/test/compile-fail/borrowck-preserve-box-in-field.rs2
-rw-r--r--src/test/compile-fail/borrowck-preserve-box-in-uniq.rs2
-rw-r--r--src/test/compile-fail/borrowck-preserve-box.rs2
-rw-r--r--src/test/compile-fail/borrowck-preserve-expl-deref.rs2
-rw-r--r--src/test/compile-fail/borrowck-uniq-via-lend.rs14
-rw-r--r--src/test/compile-fail/issue-11192.rs2
-rw-r--r--src/test/compile-fail/isuue-12470.rs2
-rw-r--r--src/test/compile-fail/lint-allocation.rs17
-rw-r--r--src/test/compile-fail/regions-infer-borrow-scope-too-big.rs2
-rw-r--r--src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs2
-rw-r--r--src/test/compile-fail/regions-trait-variance.rs2
-rw-r--r--src/test/compile-fail/struct-field-assignability.rs4
-rw-r--r--src/test/debuginfo/borrowed-managed-basic.rs28
-rw-r--r--src/test/debuginfo/borrowed-struct.rs4
-rw-r--r--src/test/debuginfo/borrowed-tuple.rs4
-rw-r--r--src/test/debuginfo/borrowed-unique-basic.rs28
-rw-r--r--src/test/debuginfo/var-captured-in-sendable-closure.rs2
-rw-r--r--src/test/run-pass/bitv-perf-test.rs2
-rw-r--r--src/test/run-pass/borrowck-lend-args.rs6
-rw-r--r--src/test/run-pass/borrowck-mut-uniq.rs2
-rw-r--r--src/test/run-pass/borrowck-root-while-cond.rs2
-rw-r--r--src/test/run-pass/borrowck-uniq-via-ref.rs12
-rw-r--r--src/test/run-pass/cci_borrow.rs2
-rw-r--r--src/test/run-pass/issue-3794.rs3
-rw-r--r--src/test/run-pass/issue-5884.rs2
-rw-r--r--src/test/run-pass/let-assignability.rs2
-rw-r--r--src/test/run-pass/new-box.rs2
-rw-r--r--src/test/run-pass/regions-borrow-at.rs2
-rw-r--r--src/test/run-pass/regions-borrow-uniq.rs2
-rw-r--r--src/test/run-pass/regions-escape-into-other-fn.rs2
-rw-r--r--src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs2
-rw-r--r--src/test/run-pass/regions-infer-borrow-scope.rs2
37 files changed, 81 insertions, 97 deletions
diff --git a/src/test/compile-fail/borrowck-bad-nested-calls-free.rs b/src/test/compile-fail/borrowck-bad-nested-calls-free.rs
index fd96b750fc1..ab2fc6c67b4 100644
--- a/src/test/compile-fail/borrowck-bad-nested-calls-free.rs
+++ b/src/test/compile-fail/borrowck-bad-nested-calls-free.rs
@@ -30,7 +30,7 @@ fn implicit() {
     //    evaluated, but it gets freed when evaluating the second
     //    argument!
     add(
-        a,
+        &*a,
         rewrite(&mut a)); //~ ERROR cannot borrow
 }
 
diff --git a/src/test/compile-fail/borrowck-bad-nested-calls-move.rs b/src/test/compile-fail/borrowck-bad-nested-calls-move.rs
index d1ab70e4aed..708eed0d113 100644
--- a/src/test/compile-fail/borrowck-bad-nested-calls-move.rs
+++ b/src/test/compile-fail/borrowck-bad-nested-calls-move.rs
@@ -30,7 +30,7 @@ fn implicit() {
     //    evaluated, but it gets moved when evaluating the second
     //    argument!
     add(
-        a,
+        &*a,
         a); //~ ERROR cannot move
 }
 
diff --git a/src/test/compile-fail/borrowck-closures-use-after-free.rs b/src/test/compile-fail/borrowck-closures-use-after-free.rs
index ec31160f0d5..735d9ece9b1 100644
--- a/src/test/compile-fail/borrowck-closures-use-after-free.rs
+++ b/src/test/compile-fail/borrowck-closures-use-after-free.rs
@@ -28,5 +28,5 @@ fn main() {
   let test = |foo: &Foo| {
     ptr = box Foo { x: ptr.x + 1 };
   };
-  test(ptr); //~ ERROR cannot borrow `*ptr`
+  test(&*ptr); //~ ERROR cannot borrow `*ptr`
 }
diff --git a/src/test/compile-fail/borrowck-lend-flow-loop.rs b/src/test/compile-fail/borrowck-lend-flow-loop.rs
index 561d8c679a1..12e1240d10d 100644
--- a/src/test/compile-fail/borrowck-lend-flow-loop.rs
+++ b/src/test/compile-fail/borrowck-lend-flow-loop.rs
@@ -31,7 +31,7 @@ fn loop_overarching_alias_mut() {
     let mut x = &mut v;
     **x += 1;
     loop {
-        borrow(v); //~ ERROR cannot borrow
+        borrow(&*v); //~ ERROR cannot borrow
     }
 }
 
@@ -41,7 +41,7 @@ fn block_overarching_alias_mut() {
     let mut v = box 3;
     let mut x = &mut v;
     for _ in range(0i, 3) {
-        borrow(v); //~ ERROR cannot borrow
+        borrow(&*v); //~ ERROR cannot borrow
     }
     *x = box 5;
 }
@@ -105,7 +105,7 @@ fn while_aliased_mut_cond(cond: bool, cond2: bool) {
     let mut x = &mut w;
     while cond {
         **x += 1;
-        borrow(v); //~ ERROR cannot borrow
+        borrow(&*v); //~ ERROR cannot borrow
         if cond2 {
             x = &mut v; //~ ERROR cannot borrow
         }
diff --git a/src/test/compile-fail/borrowck-loan-blocks-mut-uniq.rs b/src/test/compile-fail/borrowck-loan-blocks-mut-uniq.rs
index c11a08b254f..bfa890ada9f 100644
--- a/src/test/compile-fail/borrowck-loan-blocks-mut-uniq.rs
+++ b/src/test/compile-fail/borrowck-loan-blocks-mut-uniq.rs
@@ -14,7 +14,7 @@ fn borrow(v: &int, f: |x: &int|) {
 
 fn box_imm() {
     let mut v = box 3;
-    borrow(v,
+    borrow(&*v,
            |w| { //~ ERROR cannot borrow `v` as mutable
             v = box 4;
             assert_eq!(*v, 3);
diff --git a/src/test/compile-fail/borrowck-preserve-box-in-field.rs b/src/test/compile-fail/borrowck-preserve-box-in-field.rs
index 1ea4a98c45b..b9dc7953580 100644
--- a/src/test/compile-fail/borrowck-preserve-box-in-field.rs
+++ b/src/test/compile-fail/borrowck-preserve-box-in-field.rs
@@ -25,7 +25,7 @@ struct F { f: Box<int> }
 
 pub fn main() {
     let mut x = box(GC) F {f: box 3};
-    borrow(x.f, |b_x| {
+    borrow(&*x.f, |b_x| {
     //~^ ERROR cannot borrow `x` as mutable because `*x.f` is also borrowed as immutable
         assert_eq!(*b_x, 3);
         assert_eq!(&(*x.f) as *const int, &(*b_x) as *const int);
diff --git a/src/test/compile-fail/borrowck-preserve-box-in-uniq.rs b/src/test/compile-fail/borrowck-preserve-box-in-uniq.rs
index 979791ad763..38c80f293ef 100644
--- a/src/test/compile-fail/borrowck-preserve-box-in-uniq.rs
+++ b/src/test/compile-fail/borrowck-preserve-box-in-uniq.rs
@@ -25,7 +25,7 @@ struct F { f: Box<int> }
 
 pub fn main() {
     let mut x = box box(GC) F{f: box 3};
-    borrow(x.f, |b_x| {
+    borrow(&*x.f, |b_x| {
     //~^ ERROR cannot borrow `x` as mutable because `*x.f` is also borrowed as immutable
         assert_eq!(*b_x, 3);
         assert_eq!(&(*x.f) as *const int, &(*b_x) as *const int);
diff --git a/src/test/compile-fail/borrowck-preserve-box.rs b/src/test/compile-fail/borrowck-preserve-box.rs
index 9eadb62c3a0..d838851e922 100644
--- a/src/test/compile-fail/borrowck-preserve-box.rs
+++ b/src/test/compile-fail/borrowck-preserve-box.rs
@@ -23,7 +23,7 @@ fn borrow(x: &int, f: |x: &int|) {
 
 pub fn main() {
     let mut x = box(GC) 3;
-    borrow(x, |b_x| {
+    borrow(&*x, |b_x| {
     //~^ ERROR cannot borrow `x` as mutable because `*x` is also borrowed as immutable
         assert_eq!(*b_x, 3);
         assert_eq!(&(*x) as *const int, &(*b_x) as *const int);
diff --git a/src/test/compile-fail/borrowck-preserve-expl-deref.rs b/src/test/compile-fail/borrowck-preserve-expl-deref.rs
index 066bb53cdc4..d00bded2d79 100644
--- a/src/test/compile-fail/borrowck-preserve-expl-deref.rs
+++ b/src/test/compile-fail/borrowck-preserve-expl-deref.rs
@@ -25,7 +25,7 @@ struct F { f: Box<int> }
 
 pub fn main() {
     let mut x = box(GC) F {f: box 3};
-    borrow((*x).f, |b_x| {
+    borrow(&*(*x).f, |b_x| {
     //~^ ERROR cannot borrow `x` as mutable because `*x.f` is also borrowed as immutable
         assert_eq!(*b_x, 3);
         assert_eq!(&(*x.f) as *const int, &(*b_x) as *const int);
diff --git a/src/test/compile-fail/borrowck-uniq-via-lend.rs b/src/test/compile-fail/borrowck-uniq-via-lend.rs
index 5a129956487..9785b6a8f69 100644
--- a/src/test/compile-fail/borrowck-uniq-via-lend.rs
+++ b/src/test/compile-fail/borrowck-uniq-via-lend.rs
@@ -13,13 +13,13 @@ fn borrow(_v: &int) {}
 
 fn local() {
     let mut v = box 3i;
-    borrow(v);
+    borrow(&*v);
 }
 
 fn local_rec() {
     struct F { f: Box<int> }
     let mut v = F {f: box 3};
-    borrow(v.f);
+    borrow(&*v.f);
 }
 
 fn local_recs() {
@@ -27,26 +27,26 @@ fn local_recs() {
     struct G { g: H }
     struct H { h: Box<int> }
     let mut v = F {f: G {g: H {h: box 3}}};
-    borrow(v.f.g.h);
+    borrow(&*v.f.g.h);
 }
 
 fn aliased_imm() {
     let mut v = box 3i;
     let _w = &v;
-    borrow(v);
+    borrow(&*v);
 }
 
 fn aliased_mut() {
     let mut v = box 3i;
     let _w = &mut v;
-    borrow(v); //~ ERROR cannot borrow `*v`
+    borrow(&*v); //~ ERROR cannot borrow `*v`
 }
 
 fn aliased_other() {
     let mut v = box 3i;
     let mut w = box 4i;
     let _x = &mut w;
-    borrow(v);
+    borrow(&*v);
 }
 
 fn aliased_other_reassign() {
@@ -54,7 +54,7 @@ fn aliased_other_reassign() {
     let mut w = box 4i;
     let mut _x = &mut w;
     _x = &mut v;
-    borrow(v); //~ ERROR cannot borrow `*v`
+    borrow(&*v); //~ ERROR cannot borrow `*v`
 }
 
 fn main() {
diff --git a/src/test/compile-fail/issue-11192.rs b/src/test/compile-fail/issue-11192.rs
index e7fa8300bcb..18a00d15eaf 100644
--- a/src/test/compile-fail/issue-11192.rs
+++ b/src/test/compile-fail/issue-11192.rs
@@ -25,7 +25,7 @@ fn main() {
         ptr = box Foo { x: ptr.x + 1 };
         println!("access {}", foo.x);
     };
-    test(ptr);
+    test(&*ptr);
     //~^ ERROR: cannot borrow `*ptr` as immutable
 }
 
diff --git a/src/test/compile-fail/isuue-12470.rs b/src/test/compile-fail/isuue-12470.rs
index 18bfb7abe6c..d4073a5e984 100644
--- a/src/test/compile-fail/isuue-12470.rs
+++ b/src/test/compile-fail/isuue-12470.rs
@@ -33,7 +33,7 @@ fn make_a<'a>(p: &'a X) -> A<'a> {
 
 fn make_make_a() -> A {
     let b: Box<B> = box B {i:1};
-    let bb: &B = b;    //~ ERROR does not live long enough
+    let bb: &B = &*b;    //~ ERROR does not live long enough
     make_a(bb)
 }
 
diff --git a/src/test/compile-fail/lint-allocation.rs b/src/test/compile-fail/lint-allocation.rs
deleted file mode 100644
index 1600043acbf..00000000000
--- a/src/test/compile-fail/lint-allocation.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-// Copyright 2013 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-#![deny(unnecessary_allocation)]
-
-fn f(_: &int) {}
-
-fn main() {
-    f(box 1); //~ ERROR unnecessary allocation, use & instead
-}
diff --git a/src/test/compile-fail/regions-infer-borrow-scope-too-big.rs b/src/test/compile-fail/regions-infer-borrow-scope-too-big.rs
index 77988d18679..028988dbd4f 100644
--- a/src/test/compile-fail/regions-infer-borrow-scope-too-big.rs
+++ b/src/test/compile-fail/regions-infer-borrow-scope-too-big.rs
@@ -22,7 +22,7 @@ fn x_coord<'r>(p: &'r point) -> &'r int {
 }
 
 fn foo(p: Gc<point>) -> &int {
-    let xc = x_coord(p); //~ ERROR `*p` does not live long enough
+    let xc = x_coord(&*p); //~ ERROR `*p` does not live long enough
     assert_eq!(*xc, 3);
     return xc;
 }
diff --git a/src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs b/src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs
index 0aff58c34cc..bb021d4135a 100644
--- a/src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs
+++ b/src/test/compile-fail/regions-infer-borrow-scope-within-loop.rs
@@ -21,7 +21,7 @@ fn foo(cond: || -> bool, make_box: || -> Gc<int>) {
 
         // Here we complain because the resulting region
         // of this borrow is the fn body as a whole.
-        y = borrow(x); //~ ERROR `*x` does not live long enough
+        y = borrow(&*x); //~ ERROR `*x` does not live long enough
 
         assert_eq!(*x, *y);
         if cond() { break; }
diff --git a/src/test/compile-fail/regions-trait-variance.rs b/src/test/compile-fail/regions-trait-variance.rs
index 62e6a404838..24dcfb87ad8 100644
--- a/src/test/compile-fail/regions-trait-variance.rs
+++ b/src/test/compile-fail/regions-trait-variance.rs
@@ -42,7 +42,7 @@ fn make_make_a() -> A {
     let b: Box<B> = box B {
         i: 1,
     };
-    let bb: &B = b; //~ ERROR `*b` does not live long enough
+    let bb: &B = &*b; //~ ERROR `*b` does not live long enough
     make_a(bb)
 }
 
diff --git a/src/test/compile-fail/struct-field-assignability.rs b/src/test/compile-fail/struct-field-assignability.rs
index b6ce848a7d8..bfa8f402a82 100644
--- a/src/test/compile-fail/struct-field-assignability.rs
+++ b/src/test/compile-fail/struct-field-assignability.rs
@@ -1,3 +1,5 @@
+// ignore-test
+
 // Copyright 2014 The Rust Project Developers. See the COPYRIGHT
 // file at the top-level directory of this distribution and at
 // http://rust-lang.org/COPYRIGHT.
@@ -17,6 +19,6 @@ struct Foo<'a> {
 }
 
 pub fn main() {
-    let f = Foo { x: box(GC) 3 }; //~ ERROR borrowed value does not live long enough
+    let f = Foo { x: &*(box(GC) 3) }; //~ ERROR borrowed value does not live long enough
     assert_eq!(*f.x, 3);
 }
diff --git a/src/test/debuginfo/borrowed-managed-basic.rs b/src/test/debuginfo/borrowed-managed-basic.rs
index 82e44b46d3c..8e924a46d9a 100644
--- a/src/test/debuginfo/borrowed-managed-basic.rs
+++ b/src/test/debuginfo/borrowed-managed-basic.rs
@@ -120,46 +120,46 @@ use std::gc::{Gc, GC};
 
 fn main() {
     let bool_box: Gc<bool> = box(GC) true;
-    let bool_ref: &bool = bool_box;
+    let bool_ref: &bool = &*bool_box;
 
     let int_box: Gc<int> = box(GC) -1;
-    let int_ref: &int = int_box;
+    let int_ref: &int = &*int_box;
 
     let char_box: Gc<char> = box(GC) 'a';
-    let char_ref: &char = char_box;
+    let char_ref: &char = &*char_box;
 
     let i8_box: Gc<i8> = box(GC) 68;
-    let i8_ref: &i8 = i8_box;
+    let i8_ref: &i8 = &*i8_box;
 
     let i16_box: Gc<i16> = box(GC) -16;
-    let i16_ref: &i16 = i16_box;
+    let i16_ref: &i16 = &*i16_box;
 
     let i32_box: Gc<i32> = box(GC) -32;
-    let i32_ref: &i32 = i32_box;
+    let i32_ref: &i32 = &*i32_box;
 
     let i64_box: Gc<i64> = box(GC) -64;
-    let i64_ref: &i64 = i64_box;
+    let i64_ref: &i64 = &*i64_box;
 
     let uint_box: Gc<uint> = box(GC) 1;
-    let uint_ref: &uint = uint_box;
+    let uint_ref: &uint = &*uint_box;
 
     let u8_box: Gc<u8> = box(GC) 100;
-    let u8_ref: &u8 = u8_box;
+    let u8_ref: &u8 = &*u8_box;
 
     let u16_box: Gc<u16> = box(GC) 16;
-    let u16_ref: &u16 = u16_box;
+    let u16_ref: &u16 = &*u16_box;
 
     let u32_box: Gc<u32> = box(GC) 32;
-    let u32_ref: &u32 = u32_box;
+    let u32_ref: &u32 = &*u32_box;
 
     let u64_box: Gc<u64> = box(GC) 64;
-    let u64_ref: &u64 = u64_box;
+    let u64_ref: &u64 = &*u64_box;
 
     let f32_box: Gc<f32> = box(GC) 2.5;
-    let f32_ref: &f32 = f32_box;
+    let f32_ref: &f32 = &*f32_box;
 
     let f64_box: Gc<f64> = box(GC) 3.5;
-    let f64_ref: &f64 = f64_box;
+    let f64_ref: &f64 = &*f64_box;
 
     zzz(); // #break
 }
diff --git a/src/test/debuginfo/borrowed-struct.rs b/src/test/debuginfo/borrowed-struct.rs
index 5ad0fe89d2c..ed56c19869f 100644
--- a/src/test/debuginfo/borrowed-struct.rs
+++ b/src/test/debuginfo/borrowed-struct.rs
@@ -100,12 +100,12 @@ fn main() {
     let ref_to_unnamed: &SomeStruct = &SomeStruct { x: 11, y: 24.5 };
 
     let managed_val = box(GC) SomeStruct { x: 12, y: 25.5 };
-    let managed_val_ref: &SomeStruct = managed_val;
+    let managed_val_ref: &SomeStruct = &*managed_val;
     let managed_val_interior_ref_1: &int = &managed_val.x;
     let managed_val_interior_ref_2: &f64 = &managed_val.y;
 
     let unique_val = box SomeStruct { x: 13, y: 26.5 };
-    let unique_val_ref: &SomeStruct = unique_val;
+    let unique_val_ref: &SomeStruct = &*unique_val;
     let unique_val_interior_ref_1: &int = &unique_val.x;
     let unique_val_interior_ref_2: &f64 = &unique_val.y;
 
diff --git a/src/test/debuginfo/borrowed-tuple.rs b/src/test/debuginfo/borrowed-tuple.rs
index 5c20c7471ec..583906b7b30 100644
--- a/src/test/debuginfo/borrowed-tuple.rs
+++ b/src/test/debuginfo/borrowed-tuple.rs
@@ -60,10 +60,10 @@ fn main() {
     let ref_to_unnamed: &(i16, f32) = &(-15, -20f32);
 
     let managed_val: Gc<(i16, f32)> = box(GC) (-16, -21f32);
-    let managed_val_ref: &(i16, f32) = managed_val;
+    let managed_val_ref: &(i16, f32) = &*managed_val;
 
     let unique_val: Box<(i16, f32)> = box() (-17, -22f32);
-    let unique_val_ref: &(i16, f32) = unique_val;
+    let unique_val_ref: &(i16, f32) = &*unique_val;
 
     zzz(); // #break
 }
diff --git a/src/test/debuginfo/borrowed-unique-basic.rs b/src/test/debuginfo/borrowed-unique-basic.rs
index 821c85fdcf3..4a5df78b5c6 100644
--- a/src/test/debuginfo/borrowed-unique-basic.rs
+++ b/src/test/debuginfo/borrowed-unique-basic.rs
@@ -116,46 +116,46 @@
 
 fn main() {
     let bool_box: Box<bool> = box true;
-    let bool_ref: &bool = bool_box;
+    let bool_ref: &bool = &*bool_box;
 
     let int_box: Box<int> = box -1;
-    let int_ref: &int = int_box;
+    let int_ref: &int = &*int_box;
 
     let char_box: Box<char> = box 'a';
-    let char_ref: &char = char_box;
+    let char_ref: &char = &*char_box;
 
     let i8_box: Box<i8> = box 68;
-    let i8_ref: &i8 = i8_box;
+    let i8_ref: &i8 = &*i8_box;
 
     let i16_box: Box<i16> = box -16;
-    let i16_ref: &i16 = i16_box;
+    let i16_ref: &i16 = &*i16_box;
 
     let i32_box: Box<i32> = box -32;
-    let i32_ref: &i32 = i32_box;
+    let i32_ref: &i32 = &*i32_box;
 
     let i64_box: Box<i64> = box -64;
-    let i64_ref: &i64 = i64_box;
+    let i64_ref: &i64 = &*i64_box;
 
     let uint_box: Box<uint> = box 1;
-    let uint_ref: &uint = uint_box;
+    let uint_ref: &uint = &*uint_box;
 
     let u8_box: Box<u8> = box 100;
-    let u8_ref: &u8 = u8_box;
+    let u8_ref: &u8 = &*u8_box;
 
     let u16_box: Box<u16> = box 16;
-    let u16_ref: &u16 = u16_box;
+    let u16_ref: &u16 = &*u16_box;
 
     let u32_box: Box<u32> = box 32;
-    let u32_ref: &u32 = u32_box;
+    let u32_ref: &u32 = &*u32_box;
 
     let u64_box: Box<u64> = box 64;
-    let u64_ref: &u64 = u64_box;
+    let u64_ref: &u64 = &*u64_box;
 
     let f32_box: Box<f32> = box 2.5;
-    let f32_ref: &f32 = f32_box;
+    let f32_ref: &f32 = &*f32_box;
 
     let f64_box: Box<f64> = box 3.5;
-    let f64_ref: &f64 = f64_box;
+    let f64_ref: &f64 = &*f64_box;
 
     zzz(); // #break
 }
diff --git a/src/test/debuginfo/var-captured-in-sendable-closure.rs b/src/test/debuginfo/var-captured-in-sendable-closure.rs
index cd100415cbe..e87c23b96e2 100644
--- a/src/test/debuginfo/var-captured-in-sendable-closure.rs
+++ b/src/test/debuginfo/var-captured-in-sendable-closure.rs
@@ -58,7 +58,7 @@ fn main() {
 
     let closure: proc() = proc() {
         zzz(); // #break
-        do_something(&constant, &a_struct.a, owned);
+        do_something(&constant, &a_struct.a, &*owned);
     };
 
     closure();
diff --git a/src/test/run-pass/bitv-perf-test.rs b/src/test/run-pass/bitv-perf-test.rs
index 3823a7033f5..281167ff46c 100644
--- a/src/test/run-pass/bitv-perf-test.rs
+++ b/src/test/run-pass/bitv-perf-test.rs
@@ -15,7 +15,7 @@ use std::collections::Bitv;
 fn bitv_test() {
     let mut v1 = box Bitv::with_capacity(31, false);
     let v2 = box Bitv::with_capacity(31, true);
-    v1.union(v2);
+    v1.union(&*v2);
 }
 
 pub fn main() {
diff --git a/src/test/run-pass/borrowck-lend-args.rs b/src/test/run-pass/borrowck-lend-args.rs
index 68d1b74e201..9b8fa8f9f79 100644
--- a/src/test/run-pass/borrowck-lend-args.rs
+++ b/src/test/run-pass/borrowck-lend-args.rs
@@ -12,15 +12,15 @@
 fn borrow(_v: &int) {}
 
 fn borrow_from_arg_imm_ref(v: Box<int>) {
-    borrow(v);
+    borrow(&*v);
 }
 
 fn borrow_from_arg_mut_ref(v: &mut Box<int>) {
-    borrow(*v);
+    borrow(&**v);
 }
 
 fn borrow_from_arg_copy(v: Box<int>) {
-    borrow(v);
+    borrow(&*v);
 }
 
 pub fn main() {
diff --git a/src/test/run-pass/borrowck-mut-uniq.rs b/src/test/run-pass/borrowck-mut-uniq.rs
index c0be4abafbe..993ce37a1ec 100644
--- a/src/test/run-pass/borrowck-mut-uniq.rs
+++ b/src/test/run-pass/borrowck-mut-uniq.rs
@@ -32,7 +32,7 @@ pub fn main() {
     add_int(&mut *ints, 22);
     add_int(&mut *ints, 44);
 
-    iter_ints(ints, |i| {
+    iter_ints(&*ints, |i| {
         println!("int = {}", *i);
         true
     });
diff --git a/src/test/run-pass/borrowck-root-while-cond.rs b/src/test/run-pass/borrowck-root-while-cond.rs
index eda8637adc4..35cdfb41abc 100644
--- a/src/test/run-pass/borrowck-root-while-cond.rs
+++ b/src/test/run-pass/borrowck-root-while-cond.rs
@@ -18,5 +18,5 @@ struct Rec { f: Gc<int> }
 
 pub fn main() {
     let rec = box(GC) Rec {f: box(GC) 22};
-    while *borrow(rec.f) == 23 {}
+    while *borrow(&*rec.f) == 23 {}
 }
diff --git a/src/test/run-pass/borrowck-uniq-via-ref.rs b/src/test/run-pass/borrowck-uniq-via-ref.rs
index 451f9ccf5bd..84bd70c78d4 100644
--- a/src/test/run-pass/borrowck-uniq-via-ref.rs
+++ b/src/test/run-pass/borrowck-uniq-via-ref.rs
@@ -28,27 +28,27 @@ struct Innermost {
 fn borrow(_v: &int) {}
 
 fn box_mut(v: &mut Box<int>) {
-    borrow(*v); // OK: &mut -> &imm
+    borrow(&**v); // OK: &mut -> &imm
 }
 
 fn box_mut_rec(v: &mut Rec) {
-    borrow(v.f); // OK: &mut -> &imm
+    borrow(&*v.f); // OK: &mut -> &imm
 }
 
 fn box_mut_recs(v: &mut Outer) {
-    borrow(v.f.g.h); // OK: &mut -> &imm
+    borrow(&*v.f.g.h); // OK: &mut -> &imm
 }
 
 fn box_imm(v: &Box<int>) {
-    borrow(*v); // OK
+    borrow(&**v); // OK
 }
 
 fn box_imm_rec(v: &Rec) {
-    borrow(v.f); // OK
+    borrow(&*v.f); // OK
 }
 
 fn box_imm_recs(v: &Outer) {
-    borrow(v.f.g.h); // OK
+    borrow(&*v.f.g.h); // OK
 }
 
 pub fn main() {
diff --git a/src/test/run-pass/cci_borrow.rs b/src/test/run-pass/cci_borrow.rs
index 324fb428df0..32b4065439f 100644
--- a/src/test/run-pass/cci_borrow.rs
+++ b/src/test/run-pass/cci_borrow.rs
@@ -18,7 +18,7 @@ use std::gc::GC;
 
 pub fn main() {
     let p = box(GC) 22u;
-    let r = foo(p);
+    let r = foo(&*p);
     println!("r={}", r);
     assert_eq!(r, 22u);
 }
diff --git a/src/test/run-pass/issue-3794.rs b/src/test/run-pass/issue-3794.rs
index 00878189627..9414a6f2302 100644
--- a/src/test/run-pass/issue-3794.rs
+++ b/src/test/run-pass/issue-3794.rs
@@ -34,8 +34,7 @@ fn print_s(s: &S) {
 
 pub fn main() {
     let s: Box<S> = box S { s: 5 };
-    print_s(s);
+    print_s(&*s);
     let t: Box<T> = s as Box<T>;
     print_t(t);
-
 }
diff --git a/src/test/run-pass/issue-5884.rs b/src/test/run-pass/issue-5884.rs
index c99fb7765fb..2d8f966caf1 100644
--- a/src/test/run-pass/issue-5884.rs
+++ b/src/test/run-pass/issue-5884.rs
@@ -22,7 +22,7 @@ struct Bar<'a> {
 }
 
 fn check(a: Gc<Foo>) {
-    let _ic = Bar{ b: a, a: box None };
+    let _ic = Bar{ b: &*a, a: box None };
 }
 
 pub fn main(){}
diff --git a/src/test/run-pass/let-assignability.rs b/src/test/run-pass/let-assignability.rs
index 477f3b2acaf..6bea1aebc45 100644
--- a/src/test/run-pass/let-assignability.rs
+++ b/src/test/run-pass/let-assignability.rs
@@ -10,7 +10,7 @@
 
 fn f() {
     let a = box 1;
-    let b: &int = a;
+    let b: &int = &*a;
     println!("{}", b);
 }
 
diff --git a/src/test/run-pass/new-box.rs b/src/test/run-pass/new-box.rs
index d41896ffb41..38f552e9a98 100644
--- a/src/test/run-pass/new-box.rs
+++ b/src/test/run-pass/new-box.rs
@@ -10,7 +10,7 @@
 
 
 fn f(x: Box<int>) {
-    let y: &int = x;
+    let y: &int = &*x;
     println!("{}", *x);
     println!("{}", *y);
 }
diff --git a/src/test/run-pass/regions-borrow-at.rs b/src/test/run-pass/regions-borrow-at.rs
index c6dfbabd448..74990432d03 100644
--- a/src/test/run-pass/regions-borrow-at.rs
+++ b/src/test/run-pass/regions-borrow-at.rs
@@ -18,7 +18,7 @@ fn foo(x: &uint) -> uint {
 
 pub fn main() {
     let p = box(GC) 22u;
-    let r = foo(p);
+    let r = foo(&*p);
     println!("r={}", r);
     assert_eq!(r, 22u);
 }
diff --git a/src/test/run-pass/regions-borrow-uniq.rs b/src/test/run-pass/regions-borrow-uniq.rs
index 6b35c0768d7..36f7d88f7d7 100644
--- a/src/test/run-pass/regions-borrow-uniq.rs
+++ b/src/test/run-pass/regions-borrow-uniq.rs
@@ -14,6 +14,6 @@ fn foo(x: &uint) -> uint {
 
 pub fn main() {
     let p = box 3u;
-    let r = foo(p);
+    let r = foo(&*p);
     assert_eq!(r, 3u);
 }
diff --git a/src/test/run-pass/regions-escape-into-other-fn.rs b/src/test/run-pass/regions-escape-into-other-fn.rs
index 695a1b110da..5e2893c4980 100644
--- a/src/test/run-pass/regions-escape-into-other-fn.rs
+++ b/src/test/run-pass/regions-escape-into-other-fn.rs
@@ -17,5 +17,5 @@ fn bar(x: &uint) -> uint { *x }
 
 pub fn main() {
     let p = box(GC) 3u;
-    assert_eq!(bar(foo(p)), 3);
+    assert_eq!(bar(foo(&*p)), 3);
 }
diff --git a/src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs b/src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs
index 8f055318533..0b42f71fccb 100644
--- a/src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs
+++ b/src/test/run-pass/regions-infer-borrow-scope-within-loop-ok.rs
@@ -15,7 +15,7 @@ fn borrow<'r, T>(x: &'r T) -> &'r T {x}
 pub fn main() {
     let x = box(GC) 3i;
     loop {
-        let y = borrow(x);
+        let y = borrow(&*x);
         assert_eq!(*x, *y);
         break;
     }
diff --git a/src/test/run-pass/regions-infer-borrow-scope.rs b/src/test/run-pass/regions-infer-borrow-scope.rs
index c7577622453..abbbb51580f 100644
--- a/src/test/run-pass/regions-infer-borrow-scope.rs
+++ b/src/test/run-pass/regions-infer-borrow-scope.rs
@@ -20,6 +20,6 @@ fn x_coord<'r>(p: &'r Point) -> &'r int {
 
 pub fn main() {
     let p = box(GC) Point {x: 3, y: 4};
-    let xc = x_coord(p);
+    let xc = x_coord(&*p);
     assert_eq!(*xc, 3);
 }