Skip to content

Commit 1d16cf7

Browse files
committed
---
yaml --- r: 210886 b: refs/heads/try c: 2da9efe h: refs/heads/master v: v3
1 parent e4d2b32 commit 1d16cf7

File tree

54 files changed

+545
-131
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+545
-131
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 3e561f05c00cd180ec02db4ccab2840a4aba93d2
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: ba0e1cd8147d452c356aacb29fb87568ca26f111
5-
refs/heads/try: 3709e8f92bbe314bd70a85caec4a773d98c787b5
5+
refs/heads/try: 2da9efefca51b1ba2e173ad3136812eacc0c1ce7
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
88
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596

branches/try/mk/main.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
######################################################################
1414

1515
# The version number
16-
CFG_RELEASE_NUM=1.1.0
16+
CFG_RELEASE_NUM=1.2.0
1717

1818
# An optional number to put after the label, e.g. '.2' -> '-beta.2'
1919
# NB Make sure it starts with a dot to conform to semver pre-release

branches/try/src/doc/complement-design-faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ feature.
7979
A nice replacement is the [lazy constructor macro][lcm] by [Marvin
8080
Löbel][kim].
8181

82-
[fqa]: https://mail.mozilla.org/pipermail/rust-dev/2013-April/003815.html
82+
[fqa]: http://yosefk.com/c++fqa/ctors.html#fqa-10.12
8383
[elp]: http://ericlippert.com/2013/02/06/static-constructors-part-one/
8484
[lcm]: https://gist.github.com/Kimundi/8782487
8585
[kim]: https://github.com/Kimundi

branches/try/src/doc/trpl/const-and-static.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,8 @@ static N: i32 = 5;
3131

3232
Unlike [`let`][let] bindings, you must annotate the type of a `static`.
3333

34-
[let]: variable-bindings.html
35-
3634
Statics live for the entire lifetime of a program, and therefore any
37-
reference stored in a constant has a [`static` lifetime][lifetimes]:
35+
reference stored in a constant has a [`'static` lifetime][lifetimes]:
3836

3937
```rust
4038
static NAME: &'static str = "Steve";

branches/try/src/doc/trpl/method-syntax.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ fn main() {
156156

157157
This ‘associated function’ builds a new `Circle` for us. Note that associated
158158
functions are called with the `Struct::function()` syntax, rather than the
159-
`ref.method()` syntax. Some other langauges call associated functions ‘static
159+
`ref.method()` syntax. Some other languages call associated functions ‘static
160160
methods’.
161161

162162
# Builder Pattern

branches/try/src/doc/trpl/traits.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ let result = f.write("whatever".as_bytes());
208208

209209
This will compile without error.
210210

211-
This means that even if someone does something bad like add methods to `int`,
211+
This means that even if someone does something bad like add methods to `i32`,
212212
it won’t affect you, unless you `use` that trait.
213213

214214
There’s one more restriction on implementing traits. Either the trait or the

branches/try/src/liballoc/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
#![staged_api]
6565
#![crate_type = "rlib"]
6666
#![doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
67-
html_favicon_url = "http://www.rust-lang.org/favicon.ico",
67+
html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
6868
html_root_url = "http://doc.rust-lang.org/nightly/")]
6969
#![doc(test(no_crate_inject))]
7070

branches/try/src/liballoc/rc.rs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,18 @@ impl<T: Default> Default for Rc<T> {
634634
}
635635

636636
#[stable(feature = "rust1", since = "1.0.0")]
637+
#[cfg(stage0)]
637638
impl<T: PartialEq> PartialEq for Rc<T> {
639+
#[inline(always)]
640+
fn eq(&self, other: &Rc<T>) -> bool { **self == **other }
641+
642+
#[inline(always)]
643+
fn ne(&self, other: &Rc<T>) -> bool { **self != **other }
644+
}
645+
646+
#[stable(feature = "rust1", since = "1.0.0")]
647+
#[cfg(not(stage0))]
648+
impl<T: ?Sized + PartialEq> PartialEq for Rc<T> {
638649
/// Equality for two `Rc<T>`s.
639650
///
640651
/// Two `Rc<T>`s are equal if their inner value are equal.
@@ -669,10 +680,35 @@ impl<T: PartialEq> PartialEq for Rc<T> {
669680
}
670681

671682
#[stable(feature = "rust1", since = "1.0.0")]
683+
#[cfg(stage0)]
672684
impl<T: Eq> Eq for Rc<T> {}
685+
#[stable(feature = "rust1", since = "1.0.0")]
686+
#[cfg(not(stage0))]
687+
impl<T: ?Sized + Eq> Eq for Rc<T> {}
673688

674689
#[stable(feature = "rust1", since = "1.0.0")]
690+
#[cfg(stage0)]
675691
impl<T: PartialOrd> PartialOrd for Rc<T> {
692+
#[inline(always)]
693+
fn partial_cmp(&self, other: &Rc<T>) -> Option<Ordering> {
694+
(**self).partial_cmp(&**other)
695+
}
696+
697+
#[inline(always)]
698+
fn lt(&self, other: &Rc<T>) -> bool { **self < **other }
699+
700+
#[inline(always)]
701+
fn le(&self, other: &Rc<T>) -> bool { **self <= **other }
702+
703+
#[inline(always)]
704+
fn gt(&self, other: &Rc<T>) -> bool { **self > **other }
705+
706+
#[inline(always)]
707+
fn ge(&self, other: &Rc<T>) -> bool { **self >= **other }
708+
}
709+
#[stable(feature = "rust1", since = "1.0.0")]
710+
#[cfg(not(stage0))]
711+
impl<T: ?Sized + PartialOrd> PartialOrd for Rc<T> {
676712
/// Partial comparison for two `Rc<T>`s.
677713
///
678714
/// The two are compared by calling `partial_cmp()` on their inner values.
@@ -757,7 +793,14 @@ impl<T: PartialOrd> PartialOrd for Rc<T> {
757793
}
758794

759795
#[stable(feature = "rust1", since = "1.0.0")]
796+
#[cfg(stage0)]
760797
impl<T: Ord> Ord for Rc<T> {
798+
#[inline]
799+
fn cmp(&self, other: &Rc<T>) -> Ordering { (**self).cmp(&**other) }
800+
}
801+
#[stable(feature = "rust1", since = "1.0.0")]
802+
#[cfg(not(stage0))]
803+
impl<T: ?Sized + Ord> Ord for Rc<T> {
761804
/// Comparison for two `Rc<T>`s.
762805
///
763806
/// The two are compared by calling `cmp()` on their inner values.
@@ -1399,4 +1442,9 @@ mod tests {
13991442
assert_eq!(format!("{:?}", foo), "75");
14001443
}
14011444

1445+
#[test]
1446+
fn test_unsized() {
1447+
let foo: Rc<[i32]> = Rc::new([1, 2, 3]);
1448+
assert_eq!(foo, foo.clone());
1449+
}
14021450
}

branches/try/src/libarena/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
#![crate_type = "rlib"]
2828
#![crate_type = "dylib"]
2929
#![doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
30-
html_favicon_url = "http://www.rust-lang.org/favicon.ico",
30+
html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
3131
html_root_url = "http://doc.rust-lang.org/nightly/")]
3232

3333
#![feature(alloc)]

branches/try/src/libcollections/borrow.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,10 +116,16 @@ impl<'a, T: ?Sized> BorrowMut<T> for &'a mut T {
116116
fn borrow_mut(&mut self) -> &mut T { &mut **self }
117117
}
118118

119+
#[cfg(stage0)]
119120
impl<T> Borrow<T> for rc::Rc<T> {
120121
fn borrow(&self) -> &T { &**self }
121122
}
122123

124+
#[cfg(not(stage0))]
125+
impl<T: ?Sized> Borrow<T> for rc::Rc<T> {
126+
fn borrow(&self) -> &T { &**self }
127+
}
128+
123129
impl<T> Borrow<T> for arc::Arc<T> {
124130
fn borrow(&self) -> &T { &**self }
125131
}

branches/try/src/libcollections/btree/node.rs

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ pub use self::TraversalItem::*;
1919
use core::prelude::*;
2020

2121
use core::cmp::Ordering::{Greater, Less, Equal};
22+
#[cfg(not(stage0))]
23+
use core::intrinsics::arith_offset;
2224
use core::iter::Zip;
2325
use core::marker::PhantomData;
2426
use core::ops::{Deref, DerefMut, Index, IndexMut};
@@ -205,6 +207,7 @@ impl<T> RawItems<T> {
205207
RawItems::from_parts(slice.as_ptr(), slice.len())
206208
}
207209

210+
#[cfg(stage0)]
208211
unsafe fn from_parts(ptr: *const T, len: usize) -> RawItems<T> {
209212
if mem::size_of::<T>() == 0 {
210213
RawItems {
@@ -219,6 +222,22 @@ impl<T> RawItems<T> {
219222
}
220223
}
221224

225+
#[cfg(not(stage0))]
226+
unsafe fn from_parts(ptr: *const T, len: usize) -> RawItems<T> {
227+
if mem::size_of::<T>() == 0 {
228+
RawItems {
229+
head: ptr,
230+
tail: arith_offset(ptr as *const i8, len as isize) as *const T,
231+
}
232+
} else {
233+
RawItems {
234+
head: ptr,
235+
tail: ptr.offset(len as isize),
236+
}
237+
}
238+
}
239+
240+
#[cfg(stage0)]
222241
unsafe fn push(&mut self, val: T) {
223242
ptr::write(self.tail as *mut T, val);
224243

@@ -228,11 +247,23 @@ impl<T> RawItems<T> {
228247
self.tail = self.tail.offset(1);
229248
}
230249
}
250+
251+
#[cfg(not(stage0))]
252+
unsafe fn push(&mut self, val: T) {
253+
ptr::write(self.tail as *mut T, val);
254+
255+
if mem::size_of::<T>() == 0 {
256+
self.tail = arith_offset(self.tail as *const i8, 1) as *const T;
257+
} else {
258+
self.tail = self.tail.offset(1);
259+
}
260+
}
231261
}
232262

233263
impl<T> Iterator for RawItems<T> {
234264
type Item = T;
235265

266+
#[cfg(stage0)]
236267
fn next(&mut self) -> Option<T> {
237268
if self.head == self.tail {
238269
None
@@ -250,9 +281,29 @@ impl<T> Iterator for RawItems<T> {
250281
}
251282
}
252283
}
284+
285+
#[cfg(not(stage0))]
286+
fn next(&mut self) -> Option<T> {
287+
if self.head == self.tail {
288+
None
289+
} else {
290+
unsafe {
291+
let ret = Some(ptr::read(self.head));
292+
293+
if mem::size_of::<T>() == 0 {
294+
self.head = arith_offset(self.head as *const i8, 1) as *const T;
295+
} else {
296+
self.head = self.head.offset(1);
297+
}
298+
299+
ret
300+
}
301+
}
302+
}
253303
}
254304

255305
impl<T> DoubleEndedIterator for RawItems<T> {
306+
#[cfg(stage0)]
256307
fn next_back(&mut self) -> Option<T> {
257308
if self.head == self.tail {
258309
None
@@ -268,6 +319,23 @@ impl<T> DoubleEndedIterator for RawItems<T> {
268319
}
269320
}
270321
}
322+
323+
#[cfg(not(stage0))]
324+
fn next_back(&mut self) -> Option<T> {
325+
if self.head == self.tail {
326+
None
327+
} else {
328+
unsafe {
329+
if mem::size_of::<T>() == 0 {
330+
self.tail = arith_offset(self.tail as *const i8, -1) as *const T;
331+
} else {
332+
self.tail = self.tail.offset(-1);
333+
}
334+
335+
Some(ptr::read(self.tail))
336+
}
337+
}
338+
}
271339
}
272340

273341
impl<T> Drop for RawItems<T> {

branches/try/src/libcollections/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
#![staged_api]
2020
#![crate_type = "rlib"]
2121
#![doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png",
22-
html_favicon_url = "http://www.rust-lang.org/favicon.ico",
22+
html_favicon_url = "https://doc.rust-lang.org/favicon.ico",
2323
html_root_url = "http://doc.rust-lang.org/nightly/",
2424
html_playground_url = "http://play.rust-lang.org/")]
2525
#![doc(test(no_crate_inject))]

0 commit comments

Comments
 (0)