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/liballoc | |
| 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/liballoc')
| -rw-r--r-- | src/liballoc/boxed.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/liballoc/boxed.rs b/src/liballoc/boxed.rs index 56506d798d9..89f6e934ad2 100644 --- a/src/liballoc/boxed.rs +++ b/src/liballoc/boxed.rs @@ -67,7 +67,7 @@ impl<T:PartialEq> PartialEq for Box<T> { impl<T:PartialOrd> PartialOrd for Box<T> { #[inline] fn partial_cmp(&self, other: &Box<T>) -> Option<Ordering> { - (**self).partial_cmp(*other) + (**self).partial_cmp(&**other) } #[inline] fn lt(&self, other: &Box<T>) -> bool { *(*self) < *(*other) } @@ -80,7 +80,9 @@ impl<T:PartialOrd> PartialOrd for Box<T> { } impl<T: Ord> Ord for Box<T> { #[inline] - fn cmp(&self, other: &Box<T>) -> Ordering { (**self).cmp(*other) } + fn cmp(&self, other: &Box<T>) -> Ordering { + (**self).cmp(&**other) + } } impl<T: Eq> Eq for Box<T> {} |
