Skip to content

Commit 774a5b9

Browse files
author
Jakub Bukaj
committed
---
yaml --- r: 159389 b: refs/heads/master c: 94c8bb4 h: refs/heads/master i: 159387: cd6e8b2 v: v3
1 parent 7ce385f commit 774a5b9

Some content is hidden

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

73 files changed

+955
-911
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 3391ddda114f4b01440b028aa677af152a8675c8
2+
refs/heads/master: 94c8bb46963c713cfbc8f46c683147dcc574b506
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 9c96a79a74f10bed18b031ce0ac4126c56d6cfb3
55
refs/heads/try: f58aad6dce273570fb130b4df008ef9acd5a5be2

trunk/src/compiletest/common.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use std::from_str::FromStr;
1211
use std::fmt;
12+
use std::str::FromStr;
1313
use regex::Regex;
1414

1515
#[deriving(Clone, PartialEq)]

trunk/src/compiletest/compiletest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ extern crate regex;
2222
use std::os;
2323
use std::io;
2424
use std::io::fs;
25-
use std::from_str::FromStr;
25+
use std::str::FromStr;
2626
use getopts::{optopt, optflag, reqopt};
2727
use common::Config;
2828
use common::{Pretty, DebugInfoGdb, DebugInfoLldb, Codegen};

trunk/src/compiletest/header.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ use common::Config;
1212
use common;
1313
use util;
1414

15-
use std::from_str::FromStr;
16-
1715
pub struct TestProps {
1816
// Lines that should be expected, in order, on standard out
1917
pub error_patterns: Vec<String> ,
@@ -353,8 +351,8 @@ pub fn gdb_version_to_int(version_string: &str) -> int {
353351
panic!("{}", error_string);
354352
}
355353

356-
let major: int = FromStr::from_str(components[0]).expect(error_string);
357-
let minor: int = FromStr::from_str(components[1]).expect(error_string);
354+
let major: int = from_str(components[0]).expect(error_string);
355+
let minor: int = from_str(components[1]).expect(error_string);
358356

359357
return major * 1000 + minor;
360358
}
@@ -364,6 +362,6 @@ pub fn lldb_version_to_int(version_string: &str) -> int {
364362
"Encountered LLDB version string with unexpected format: {}",
365363
version_string);
366364
let error_string = error_string.as_slice();
367-
let major: int = FromStr::from_str(version_string).expect(error_string);
365+
let major: int = from_str(version_string).expect(error_string);
368366
return major;
369367
}

trunk/src/doc/guide-pointers.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -133,11 +133,11 @@ pass-by-reference. Basically, languages can make two choices (this is made
133133
up syntax, it's not Rust):
134134

135135
```{notrust,ignore}
136-
fn foo(x) {
136+
func foo(x) {
137137
x = 5
138138
}
139139
140-
fn main() {
140+
func main() {
141141
i = 1
142142
foo(i)
143143
// what is the value of i here?
@@ -153,11 +153,11 @@ So what do pointers have to do with this? Well, since pointers point to a
153153
location in memory...
154154

155155
```{notrust,ignore}
156-
fn foo(&int x) {
156+
func foo(&int x) {
157157
*x = 5
158158
}
159159
160-
fn main() {
160+
func main() {
161161
i = 1
162162
foo(&i)
163163
// what is the value of i here?
@@ -192,13 +192,13 @@ When you combine pointers and functions, it's easy to accidentally invalidate
192192
the memory the pointer is pointing to. For example:
193193

194194
```{notrust,ignore}
195-
fn make_pointer(): &int {
195+
func make_pointer(): &int {
196196
x = 5;
197197
198198
return &x;
199199
}
200200
201-
fn main() {
201+
func main() {
202202
&int i = make_pointer();
203203
*i = 5; // uh oh!
204204
}
@@ -214,11 +214,11 @@ issue. Two pointers are said to alias when they point at the same location
214214
in memory. Like this:
215215

216216
```{notrust,ignore}
217-
fn mutate(&int i, int j) {
217+
func mutate(&int i, int j) {
218218
*i = j;
219219
}
220220
221-
fn main() {
221+
func main() {
222222
x = 5;
223223
y = &x;
224224
z = &x; //y and z are aliased

trunk/src/doc/reference.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2653,9 +2653,10 @@ An expression may have two roles: it always produces a *value*, and it may have
26532653
value, and has effects during *evaluation*. Many expressions contain
26542654
sub-expressions (operands). The meaning of each kind of expression dictates
26552655
several things:
2656-
* Whether or not to evaluate the sub-expressions when evaluating the
2657-
* expression The order in which to evaluate the sub-expressions How to
2658-
* combine the sub-expressions' values to obtain the value of the expression.
2656+
2657+
* Whether or not to evaluate the sub-expressions when evaluating the expression
2658+
* The order in which to evaluate the sub-expressions
2659+
* How to combine the sub-expressions' values to obtain the value of the expression
26592660

26602661
In this way, the structure of expressions dictates the structure of execution.
26612662
Blocks are just another kind of expression, so blocks, statements, expressions,
@@ -3107,11 +3108,10 @@ then the expression completes.
31073108
Some examples of call expressions:
31083109

31093110
```
3110-
# use std::from_str::FromStr;
31113111
# fn add(x: int, y: int) -> int { 0 }
31123112
31133113
let x: int = add(1, 2);
3114-
let pi: Option<f32> = FromStr::from_str("3.14");
3114+
let pi: Option<f32> = from_str("3.14");
31153115
```
31163116

31173117
### Lambda expressions

trunk/src/etc/snapshot.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ def full_snapshot_name(date, rev, platform, hsh):
7575

7676

7777
def get_kernel(triple):
78-
os_name = triple.split('-')[2]
78+
t = triple.split('-')
79+
if len(t) == 2:
80+
os_name = t[1]
81+
else:
82+
os_name = t[2]
7983
if os_name == "windows":
8084
return "winnt"
8185
if os_name == "darwin":

trunk/src/etc/vim/syntax/rust.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ syn keyword rustTrait RawPtr
105105
syn keyword rustTrait Buffer Writer Reader Seek
106106
syn keyword rustTrait Str StrVector StrSlice
107107
syn keyword rustTrait IntoMaybeOwned StrAllocating UnicodeStrSlice
108-
syn keyword rustTrait ToString IntoStr
108+
syn keyword rustTrait ToString IntoString
109109
syn keyword rustTrait Tuple1 Tuple2 Tuple3 Tuple4
110110
syn keyword rustTrait Tuple5 Tuple6 Tuple7 Tuple8
111111
syn keyword rustTrait Tuple9 Tuple10 Tuple11 Tuple12

trunk/src/liballoc/rc.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,9 @@ pub struct Rc<T> {
179179
_noshare: marker::NoSync
180180
}
181181

182-
#[stable]
183182
impl<T> Rc<T> {
184183
/// Constructs a new reference-counted pointer.
184+
#[stable]
185185
pub fn new(value: T) -> Rc<T> {
186186
unsafe {
187187
Rc {
@@ -200,9 +200,7 @@ impl<T> Rc<T> {
200200
}
201201
}
202202
}
203-
}
204203

205-
impl<T> Rc<T> {
206204
/// Downgrades the reference-counted pointer to a weak reference.
207205
#[experimental = "Weak pointers may not belong in this module"]
208206
pub fn downgrade(&self) -> Weak<T> {

trunk/src/libcollections/str.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ pub use core::str::{CharSplitsN, AnyLines, MatchIndices, StrSplits};
7373
pub use core::str::{Utf16CodeUnits, eq_slice, is_utf8, is_utf16, Utf16Items};
7474
pub use core::str::{Utf16Item, ScalarValue, LoneSurrogate, utf16_items};
7575
pub use core::str::{truncate_utf16_at_nul, utf8_char_width, CharRange};
76+
pub use core::str::{FromStr, from_str};
7677
pub use core::str::{Str, StrPrelude};
7778
pub use unicode::str::{UnicodeStrPrelude, Words, Graphemes, GraphemeIndices};
7879

trunk/src/libcollections/string.rs

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use core::raw::Slice as RawSlice;
2525
use hash;
2626
use slice::CloneSliceAllocPrelude;
2727
use str;
28-
use str::{CharRange, StrAllocating, MaybeOwned, Owned};
28+
use str::{CharRange, FromStr, StrAllocating, MaybeOwned, Owned};
2929
use str::Slice as MaybeOwnedSlice; // So many `Slice`s...
3030
use vec::{DerefVec, Vec, as_vec};
3131

@@ -795,6 +795,33 @@ pub fn as_string<'a>(x: &'a str) -> DerefString<'a> {
795795
DerefString { x: as_vec(x.as_bytes()) }
796796
}
797797

798+
impl FromStr for String {
799+
#[inline]
800+
fn from_str(s: &str) -> Option<String> {
801+
Some(String::from_str(s))
802+
}
803+
}
804+
805+
/// Trait for converting a type to a string, consuming it in the process.
806+
pub trait IntoString {
807+
/// Consume and convert to a string.
808+
fn into_string(self) -> String;
809+
}
810+
811+
/// A generic trait for converting a value to a string
812+
pub trait ToString {
813+
/// Converts the value of `self` to an owned string
814+
fn to_string(&self) -> String;
815+
}
816+
817+
impl<T: fmt::Show> ToString for T {
818+
fn to_string(&self) -> String {
819+
let mut buf = Vec::<u8>::new();
820+
let _ = format_args!(|args| fmt::write(&mut buf, args), "{}", self);
821+
String::from_utf8(buf).unwrap()
822+
}
823+
}
824+
798825
/// Unsafe operations
799826
#[unstable = "waiting on raw module conventions"]
800827
pub mod raw {
@@ -860,7 +887,7 @@ mod tests {
860887

861888
use str;
862889
use str::{Str, StrPrelude, Owned};
863-
use super::{as_string, String};
890+
use super::{as_string, String, ToString};
864891
use vec::Vec;
865892
use slice::CloneSliceAllocPrelude;
866893

@@ -1164,6 +1191,28 @@ mod tests {
11641191
assert_eq!("oob", s[1..4]);
11651192
}
11661193

1194+
#[test]
1195+
fn test_simple_types() {
1196+
assert_eq!(1i.to_string(), "1".to_string());
1197+
assert_eq!((-1i).to_string(), "-1".to_string());
1198+
assert_eq!(200u.to_string(), "200".to_string());
1199+
assert_eq!(2u8.to_string(), "2".to_string());
1200+
assert_eq!(true.to_string(), "true".to_string());
1201+
assert_eq!(false.to_string(), "false".to_string());
1202+
assert_eq!(().to_string(), "()".to_string());
1203+
assert_eq!(("hi".to_string()).to_string(), "hi".to_string());
1204+
}
1205+
1206+
#[test]
1207+
fn test_vectors() {
1208+
let x: Vec<int> = vec![];
1209+
assert_eq!(x.to_string(), "[]".to_string());
1210+
assert_eq!((vec![1i]).to_string(), "[1]".to_string());
1211+
assert_eq!((vec![1i, 2, 3]).to_string(), "[1, 2, 3]".to_string());
1212+
assert!((vec![vec![], vec![1i], vec![1i, 1]]).to_string() ==
1213+
"[[], [1], [1, 1]]".to_string());
1214+
}
1215+
11671216
#[bench]
11681217
fn bench_with_capacity(b: &mut Bencher) {
11691218
b.iter(|| {

trunk/src/libcollections/tree/set.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -504,9 +504,9 @@ impl<T: Ord> TreeSet<T> {
504504
/// # Example
505505
///
506506
/// ```
507-
/// use std::collections::BTreeSet;
507+
/// use std::collections::TreeSet;
508508
///
509-
/// let mut set = BTreeSet::new();
509+
/// let mut set = TreeSet::new();
510510
///
511511
/// assert_eq!(set.insert(2i), true);
512512
/// assert_eq!(set.insert(2i), false);
@@ -522,9 +522,9 @@ impl<T: Ord> TreeSet<T> {
522522
/// # Example
523523
///
524524
/// ```
525-
/// use std::collections::BTreeSet;
525+
/// use std::collections::TreeSet;
526526
///
527-
/// let mut set = BTreeSet::new();
527+
/// let mut set = TreeSet::new();
528528
///
529529
/// set.insert(2i);
530530
/// assert_eq!(set.remove(&2), true);

trunk/src/libcollections/vec.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -645,7 +645,6 @@ impl<T> Vec<T> {
645645
/// assert!(vec.capacity() >= 3);
646646
/// ```
647647
#[stable]
648-
#[unstable = "matches collection reform specification, waiting for dust to settle"]
649648
pub fn shrink_to_fit(&mut self) {
650649
if mem::size_of::<T>() == 0 { return }
651650

@@ -1653,6 +1652,13 @@ impl<T> Vec<T> {
16531652
}
16541653
}
16551654

1655+
impl<'a> fmt::FormatWriter for Vec<u8> {
1656+
fn write(&mut self, buf: &[u8]) -> fmt::Result {
1657+
self.push_all(buf);
1658+
Ok(())
1659+
}
1660+
}
1661+
16561662
#[cfg(test)]
16571663
mod tests {
16581664
extern crate test;

trunk/src/libcore/any.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ use intrinsics::TypeId;
8888
#[stable]
8989
pub trait Any: 'static {
9090
/// Get the `TypeId` of `self`
91+
#[stable]
9192
fn get_type_id(&self) -> TypeId;
9293
}
9394

@@ -117,7 +118,6 @@ pub trait AnyRefExt<'a> {
117118
#[stable]
118119
impl<'a> AnyRefExt<'a> for &'a Any {
119120
#[inline]
120-
#[stable]
121121
fn is<T: 'static>(self) -> bool {
122122
// Get TypeId of the type this function is instantiated with
123123
let t = TypeId::of::<T>();
@@ -130,7 +130,6 @@ impl<'a> AnyRefExt<'a> for &'a Any {
130130
}
131131

132132
#[inline]
133-
#[unstable = "naming conventions around acquiring references may change"]
134133
fn downcast_ref<T: 'static>(self) -> Option<&'a T> {
135134
if self.is::<T>() {
136135
unsafe {
@@ -159,7 +158,6 @@ pub trait AnyMutRefExt<'a> {
159158
#[stable]
160159
impl<'a> AnyMutRefExt<'a> for &'a mut Any {
161160
#[inline]
162-
#[unstable = "naming conventions around acquiring references may change"]
163161
fn downcast_mut<T: 'static>(self) -> Option<&'a mut T> {
164162
if self.is::<T>() {
165163
unsafe {

0 commit comments

Comments
 (0)