diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2013-03-16 11:11:31 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2013-03-18 17:21:16 -0700 |
| commit | e78f2e2ac577f9c47cd58af52d3bcd496254545d (patch) | |
| tree | f05564837fe02f676458ea86b705709715c44017 /src/libcore/ptr.rs | |
| parent | c4db4faefaf13ac814f34c2a6cf105b7684de019 (diff) | |
| download | rust-e78f2e2ac577f9c47cd58af52d3bcd496254545d.tar.gz rust-e78f2e2ac577f9c47cd58af52d3bcd496254545d.zip | |
librustc: Make the compiler ignore purity.
For bootstrapping purposes, this commit does not remove all uses of
the keyword "pure" -- doing so would cause the compiler to no longer
bootstrap due to some syntax extensions ("deriving" in particular).
Instead, it makes the compiler ignore "pure". Post-snapshot, we can
remove "pure" from the language.
There are quite a few (~100) borrow check errors that were essentially
all the result of mutable fields or partial borrows of `@mut`. Per
discussions with Niko I think we want to allow partial borrows of
`@mut` but detect obvious footguns. We should also improve the error
message when `@mut` is erroneously reborrowed.
Diffstat (limited to 'src/libcore/ptr.rs')
| -rw-r--r-- | src/libcore/ptr.rs | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/libcore/ptr.rs b/src/libcore/ptr.rs index 481a61f4ab7..c1b6b26d86a 100644 --- a/src/libcore/ptr.rs +++ b/src/libcore/ptr.rs @@ -223,8 +223,8 @@ pub unsafe fn array_each<T>(arr: **T, cb: &fn(*T)) { } pub trait Ptr<T> { - pure fn is_null(&self) -> bool; - pure fn is_not_null(&self) -> bool; + pure fn is_null(&const self) -> bool; + pure fn is_not_null(&const self) -> bool; pure fn offset(&self, count: uint) -> Self; } @@ -232,11 +232,11 @@ pub trait Ptr<T> { impl<T> Ptr<T> for *T { /// Returns true if the pointer is equal to the null pointer. #[inline(always)] - pure fn is_null(&self) -> bool { is_null(*self) } + pure fn is_null(&const self) -> bool { is_null(*self) } /// Returns true if the pointer is not equal to the null pointer. #[inline(always)] - pure fn is_not_null(&self) -> bool { is_not_null(*self) } + pure fn is_not_null(&const self) -> bool { is_not_null(*self) } /// Calculates the offset from a pointer. #[inline(always)] @@ -247,11 +247,11 @@ impl<T> Ptr<T> for *T { impl<T> Ptr<T> for *mut T { /// Returns true if the pointer is equal to the null pointer. #[inline(always)] - pure fn is_null(&self) -> bool { is_null(*self) } + pure fn is_null(&const self) -> bool { is_null(*self) } /// Returns true if the pointer is not equal to the null pointer. #[inline(always)] - pure fn is_not_null(&self) -> bool { is_not_null(*self) } + pure fn is_not_null(&const self) -> bool { is_not_null(*self) } /// Calculates the offset from a mutable pointer. #[inline(always)] |
