diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2014-07-07 16:35:15 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2014-07-17 14:05:36 -0700 |
| commit | de70d76373e05fcf0f421cedb185b08de10a714c (patch) | |
| tree | ccfdaa415ce2bb947f40746a3b06a8980ab6cd16 /src/test | |
| parent | ca24abd4d2d02dd96ef323074c9a21d44b3fd202 (diff) | |
| download | rust-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')
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); } |
