Add PointerKind to LpDeref
Prohibit assignment to `&mut` pointers that are found in frozen or borrowed locations.

Fixes #8625.
Parse and reserve typeof keyword. #3228
Emit a better error for attempted unsafe-pointer-self. Close #8306.
Make rekillable consistent with unkillable

As for now, rekillable is an unsafe function, instead, it should behave
just like unkillable by encapsulating unsafe code within an unsafe
block.

This patch does that and removes unsafe blocks that were encapsulating
rekillable calls throughout rust's libs.

Fixes #8232
Testing rekillable fails when called from outside an unkillable block
Don't make the runtime exit on illegal calls
Decrement unkillable counter before failing
Rebased and replaced yield with deschedule
Rename UnsafeAtomicRcBox to UnsafeArc. Fixes #7674.
std: use ArcData rather than c_void in UnsafeArc.

This means that fewer `transmute`s are required, so there is less
chance of a `transmute` not having the corresponding `forget`
(possibly leading to use-after-free, etc).
librustpkg/tests.rs: cleanup unused import
option: rm implementation of Add

Closes #6002

There is consensus that the current implementation should be changed or
removed, so removing it seems like the right decision for now.
auto merge of #8772 : thestinger/rust/option, r=anasazi

Closes #6002 

There is consensus that the current implementation should be changed or
removed, so removing it seems like the right decision for now.
Trailing space
auto merge of #8581 : FlaPer87/rust/issue/8232, r=bblum

As for now, rekillable is an unsafe function, instead, it should behave
just like unkillable by encapsulating unsafe code within an unsafe
block.

This patch does that and removes unsafe blocks that were encapsulating
rekillable calls throughout rust's libs.

Fixes #8232
Extend aliasability check to uncover `& &mut &mut` and the like
auto merge of #8790 : huonw/rust/unsafearc, r=thestinger

`UnsafeAtomicRcBox` &rarr; `UnsafeArc` (#7674), and `AtomicRcBoxData` &rarr; `ArcData` to reflect this.

Also, the inner pointer of `UnsafeArc` is now `*mut ArcData`, which avoids some transmutes to `~`: i.e. less chance of mistakes.
Remove remnants of implicit self
Add test for #5783