Skip to content

Commit 9613316

Browse files
author
Alfie John
committed
---
yaml --- r: 178584 b: refs/heads/try c: 00a933f h: refs/heads/master v: v3
1 parent 6115965 commit 9613316

File tree

274 files changed

+1520
-2399
lines changed

Some content is hidden

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

274 files changed

+1520
-2399
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: 336c8d2e9c6b276b162bdb3edd43706372e6eddd
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 474b324eda10440d6568ef872a7307d38e7de95b
5-
refs/heads/try: ca4b9674c26c1de07a2042cb68e6a062d7184cef
5+
refs/heads/try: 00a933f9ece4ef22f8651320e5f4fcfcbd37e0bf
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
88
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596

branches/try/src/doc/intro.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ Let's see an example. This Rust code will not compile:
424424
use std::thread::Thread;
425425
426426
fn main() {
427-
let mut numbers = vec![1, 2, 3];
427+
let mut numbers = vec![1is, 2, 3];
428428
429429
for i in 0..3 {
430430
Thread::spawn(move || {
@@ -478,7 +478,7 @@ use std::thread::Thread;
478478
use std::sync::{Arc,Mutex};
479479
480480
fn main() {
481-
let numbers = Arc::new(Mutex::new(vec![1, 2, 3]));
481+
let numbers = Arc::new(Mutex::new(vec![1is, 2, 3]));
482482
483483
for i in 0us..3 {
484484
let number = numbers.clone();
@@ -539,7 +539,7 @@ safety check that makes this an error about moved values:
539539
use std::thread::Thread;
540540
541541
fn main() {
542-
let vec = vec![1, 2, 3];
542+
let vec = vec![1is, 2, 3];
543543
544544
for i in 0us..3 {
545545
Thread::spawn(move || {

branches/try/src/doc/reference.md

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,7 @@ cases mentioned in [Number literals](#number-literals) below.
268268
##### Suffixes
269269
| Integer | Floating-point |
270270
|---------|----------------|
271-
| `u8`, `i8`, `u16`, `i16`, `u32`, `i32`, `u64`, `i64`, `is` (`isize`), `us` (`usize`) | `f32`, `f64` |
271+
| `is` (`isize`), `us` (`usize`), `u8`, `i8`, `u16`, `i16`, `u32`, `i32`, `u64`, `i64` | `f32`, `f64` |
272272

273273
#### Character and string literals
274274

@@ -468,29 +468,27 @@ Like any literal, an integer literal may be followed (immediately,
468468
without any spaces) by an _integer suffix_, which forcibly sets the
469469
type of the literal. There are 10 valid values for an integer suffix:
470470

471+
* The `is` and `us` suffixes give the literal type `isize` or `usize`,
472+
respectively.
471473
* Each of the signed and unsigned machine types `u8`, `i8`,
472474
`u16`, `i16`, `u32`, `i32`, `u64` and `i64`
473475
give the literal the corresponding machine type.
474-
* The `is` and `us` suffixes give the literal type `isize` or `usize`,
475-
respectively.
476476

477477
The type of an _unsuffixed_ integer literal is determined by type inference.
478478
If an integer type can be _uniquely_ determined from the surrounding program
479479
context, the unsuffixed integer literal has that type. If the program context
480-
underconstrains the type, it defaults to the signed 32-bit integer `i32`; if
481-
the program context overconstrains the type, it is considered a static type
482-
error.
480+
underconstrains the type, it is considered a static type error; if the program
481+
context overconstrains the type, it is also considered a static type error.
483482

484483
Examples of integer literals of various forms:
485484

486485
```
487-
123i32; // type i32
488-
123u32; // type u32
489-
123_u32; // type u32
486+
123is; // type isize
487+
123us; // type usize
488+
123_us; // type usize
490489
0xff_u8; // type u8
491490
0o70_i16; // type i16
492491
0b1111_1111_1001_0000_i32; // type i32
493-
0us; // type usize
494492
```
495493

496494
##### Floating-point literals
@@ -1137,8 +1135,8 @@ used as a type name.
11371135

11381136
When a generic function is referenced, its type is instantiated based on the
11391137
context of the reference. For example, calling the `iter` function defined
1140-
above on `[1, 2]` will instantiate type parameter `T` with `i32`, and require
1141-
the closure parameter to have type `fn(i32)`.
1138+
above on `[1, 2]` will instantiate type parameter `T` with `isize`, and require
1139+
the closure parameter to have type `fn(isize)`.
11421140

11431141
The type parameters can also be explicitly supplied in a trailing
11441142
[path](#paths) component after the function name. This might be necessary if
@@ -2748,9 +2746,9 @@ constant expression that can be evaluated at compile time, such as a
27482746
[literal](#literals) or a [static item](#static-items).
27492747

27502748
```
2751-
[1, 2, 3, 4];
2749+
[1is, 2, 3, 4];
27522750
["a", "b", "c", "d"];
2753-
[0; 128]; // array with 128 zeros
2751+
[0is; 128]; // array with 128 zeros
27542752
[0u8, 0u8, 0u8, 0u8];
27552753
```
27562754

@@ -2923,7 +2921,7 @@ moves](#moved-and-copied-types) its right-hand operand to its left-hand
29232921
operand.
29242922

29252923
```
2926-
# let mut x = 0;
2924+
# let mut x = 0is;
29272925
# let y = 0;
29282926
29292927
x = y;
@@ -3309,11 +3307,11 @@ fn main() {
33093307
```
33103308

33113309
Patterns can also dereference pointers by using the `&`, `&mut` and `box`
3312-
symbols, as appropriate. For example, these two matches on `x: &i32` are
3310+
symbols, as appropriate. For example, these two matches on `x: &isize` are
33133311
equivalent:
33143312

33153313
```
3316-
# let x = &3;
3314+
# let x = &3is;
33173315
let y = match *x { 0 => "zero", _ => "some" };
33183316
let z = match x { &0 => "zero", _ => "some" };
33193317
@@ -3334,7 +3332,7 @@ Multiple match patterns may be joined with the `|` operator. A range of values
33343332
may be specified with `...`. For example:
33353333

33363334
```
3337-
# let x = 2;
3335+
# let x = 2is;
33383336
33393337
let message = match x {
33403338
0 | 1 => "not many",
@@ -3675,16 +3673,16 @@ The type of a closure mapping an input of type `A` to an output of type `B` is
36753673
An example of creating and calling a closure:
36763674

36773675
```rust
3678-
let captured_var = 10;
3676+
let captured_var = 10is;
36793677

36803678
let closure_no_args = |&:| println!("captured_var={}", captured_var);
36813679

3682-
let closure_args = |&: arg: i32| -> i32 {
3680+
let closure_args = |&: arg: isize| -> isize {
36833681
println!("captured_var={}, arg={}", captured_var, arg);
36843682
arg // Note lack of semicolon after 'arg'
36853683
};
36863684

3687-
fn call_closure<F: Fn(), G: Fn(i32) -> i32>(c1: F, c2: G) {
3685+
fn call_closure<F: Fn(), G: Fn(isize) -> isize>(c1: F, c2: G) {
36883686
c1();
36893687
c2(2);
36903688
}
@@ -3716,7 +3714,7 @@ trait Printable {
37163714
fn stringify(&self) -> String;
37173715
}
37183716
3719-
impl Printable for i32 {
3717+
impl Printable for isize {
37203718
fn stringify(&self) -> String { self.to_string() }
37213719
}
37223720
@@ -3725,7 +3723,7 @@ fn print(a: Box<Printable>) {
37253723
}
37263724
37273725
fn main() {
3728-
print(Box::new(10) as Box<Printable>);
3726+
print(Box::new(10is) as Box<Printable>);
37293727
}
37303728
```
37313729

branches/try/src/liballoc/arc.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
//!
4040
//! let five = Arc::new(5);
4141
//!
42-
//! for _ in 0u..10 {
42+
//! for _ in 0..10 {
4343
//! let five = five.clone();
4444
//!
4545
//! Thread::spawn(move || {
@@ -56,7 +56,7 @@
5656
//!
5757
//! let five = Arc::new(Mutex::new(5));
5858
//!
59-
//! for _ in 0u..10 {
59+
//! for _ in 0..10 {
6060
//! let five = five.clone();
6161
//!
6262
//! Thread::spawn(move || {
@@ -101,7 +101,7 @@ use heap::deallocate;
101101
/// let numbers: Vec<_> = (0..100u32).map(|i| i as f32).collect();
102102
/// let shared_numbers = Arc::new(numbers);
103103
///
104-
/// for _ in 0u..10 {
104+
/// for _ in 0..10 {
105105
/// let child_numbers = shared_numbers.clone();
106106
///
107107
/// Thread::spawn(move || {
@@ -661,7 +661,7 @@ mod tests {
661661

662662
#[test]
663663
fn test_cowarc_clone_make_unique() {
664-
let mut cow0 = Arc::new(75u);
664+
let mut cow0 = Arc::new(75);
665665
let mut cow1 = cow0.clone();
666666
let mut cow2 = cow1.clone();
667667

@@ -685,7 +685,7 @@ mod tests {
685685

686686
#[test]
687687
fn test_cowarc_clone_unique2() {
688-
let mut cow0 = Arc::new(75u);
688+
let mut cow0 = Arc::new(75);
689689
let cow1 = cow0.clone();
690690
let cow2 = cow1.clone();
691691

@@ -708,7 +708,7 @@ mod tests {
708708

709709
#[test]
710710
fn test_cowarc_clone_weak() {
711-
let mut cow0 = Arc::new(75u);
711+
let mut cow0 = Arc::new(75);
712712
let cow1_weak = cow0.downgrade();
713713

714714
assert!(75 == *cow0);

branches/try/src/liballoc/boxed.rs

Lines changed: 0 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -102,52 +102,6 @@ impl<T> Box<T> {
102102
}
103103
}
104104

105-
impl<T : ?Sized> Box<T> {
106-
/// Constructs a box from the raw pointer.
107-
///
108-
/// After this function call, pointer is owned by resulting box.
109-
/// In particular, it means that `Box` destructor calls destructor
110-
/// of `T` and releases memory. Since the way `Box` allocates and
111-
/// releases memory is unspecified, so the only valid pointer to
112-
/// pass to this function is the one taken from another `Box` with
113-
/// `box::into_raw` function.
114-
///
115-
/// Function is unsafe, because improper use of this function may
116-
/// lead to memory problems like double-free, for example if the
117-
/// function is called twice on the same raw pointer.
118-
#[unstable(feature = "alloc",
119-
reason = "may be renamed or moved out of Box scope")]
120-
pub unsafe fn from_raw(raw: *mut T) -> Self {
121-
mem::transmute(raw)
122-
}
123-
}
124-
125-
/// Consumes the `Box`, returning the wrapped raw pointer.
126-
///
127-
/// After call to this function, caller is responsible for the memory
128-
/// previously managed by `Box`, in particular caller should properly
129-
/// destroy `T` and release memory. The proper way to do it is to
130-
/// convert pointer back to `Box` with `Box::from_raw` function, because
131-
/// `Box` does not specify, how memory is allocated.
132-
///
133-
/// Function is unsafe, because result of this function is no longer
134-
/// automatically managed that may lead to memory or other resource
135-
/// leak.
136-
///
137-
/// # Example
138-
/// ```
139-
/// use std::boxed;
140-
///
141-
/// let seventeen = Box::new(17u32);
142-
/// let raw = unsafe { boxed::into_raw(seventeen) };
143-
/// let boxed_again = unsafe { Box::from_raw(raw) };
144-
/// ```
145-
#[unstable(feature = "alloc",
146-
reason = "may be renamed")]
147-
pub unsafe fn into_raw<T : ?Sized>(b: Box<T>) -> *mut T {
148-
mem::transmute(b)
149-
}
150-
151105
#[stable(feature = "rust1", since = "1.0.0")]
152106
impl<T: Default> Default for Box<T> {
153107
#[stable(feature = "rust1", since = "1.0.0")]

branches/try/src/liballoc/boxed_test.rs

Lines changed: 5 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ use core::ops::Deref;
1515
use core::result::Result::{Ok, Err};
1616
use core::clone::Clone;
1717

18-
use std::boxed;
1918
use std::boxed::Box;
2019
use std::boxed::BoxAny;
2120

@@ -31,19 +30,19 @@ struct Test;
3130

3231
#[test]
3332
fn any_move() {
34-
let a = Box::new(8u) as Box<Any>;
33+
let a = Box::new(8us) as Box<Any>;
3534
let b = Box::new(Test) as Box<Any>;
3635

3736
match a.downcast::<uint>() {
38-
Ok(a) => { assert!(a == Box::new(8u)); }
37+
Ok(a) => { assert!(a == Box::new(8us)); }
3938
Err(..) => panic!()
4039
}
4140
match b.downcast::<Test>() {
4241
Ok(a) => { assert!(a == Box::new(Test)); }
4342
Err(..) => panic!()
4443
}
4544

46-
let a = Box::new(8u) as Box<Any>;
45+
let a = Box::new(8) as Box<Any>;
4746
let b = Box::new(Test) as Box<Any>;
4847

4948
assert!(a.downcast::<Box<Test>>().is_err());
@@ -52,14 +51,14 @@ fn any_move() {
5251

5352
#[test]
5453
fn test_show() {
55-
let a = Box::new(8u) as Box<Any>;
54+
let a = Box::new(8) as Box<Any>;
5655
let b = Box::new(Test) as Box<Any>;
5756
let a_str = format!("{:?}", a);
5857
let b_str = format!("{:?}", b);
5958
assert_eq!(a_str, "Box<Any>");
6059
assert_eq!(b_str, "Box<Any>");
6160

62-
static EIGHT: usize = 8us;
61+
static EIGHT: usize = 8;
6362
static TEST: Test = Test;
6463
let a = &EIGHT as &Any;
6564
let b = &TEST as &Any;
@@ -74,44 +73,3 @@ fn deref() {
7473
fn homura<T: Deref<Target=i32>>(_: T) { }
7574
homura(Box::new(765i32));
7675
}
77-
78-
#[test]
79-
fn raw_sized() {
80-
unsafe {
81-
let x = Box::new(17i32);
82-
let p = boxed::into_raw(x);
83-
assert_eq!(17, *p);
84-
*p = 19;
85-
let y = Box::from_raw(p);
86-
assert_eq!(19, *y);
87-
}
88-
}
89-
90-
#[test]
91-
fn raw_trait() {
92-
trait Foo {
93-
fn get(&self) -> u32;
94-
fn set(&mut self, value: u32);
95-
}
96-
97-
struct Bar(u32);
98-
99-
impl Foo for Bar {
100-
fn get(&self) -> u32 {
101-
self.0
102-
}
103-
104-
fn set(&mut self, value: u32) {
105-
self.0 = value;
106-
}
107-
}
108-
109-
unsafe {
110-
let x: Box<Foo> = Box::new(Bar(17));
111-
let p = boxed::into_raw(x);
112-
assert_eq!(17, (*p).get());
113-
(*p).set(19);
114-
let y: Box<Foo> = Box::from_raw(p);
115-
assert_eq!(19, y.get());
116-
}
117-
}

0 commit comments

Comments
 (0)