Skip to content

Commit 20a6894

Browse files
committed
Deprecate str::from_chars
Use `String::from_chars` instead [breaking-change]
1 parent 211f1ca commit 20a6894

File tree

7 files changed

+23
-11
lines changed

7 files changed

+23
-11
lines changed

src/compiletest/runtest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ fn check_expected_errors(expected_errors: Vec<errors::ExpectedError> ,
813813
c
814814
}
815815
} ).collect();
816-
str::from_chars(c.as_slice()).to_string()
816+
String::from_chars(c.as_slice())
817817
}
818818

819819
#[cfg(target_os = "win32")]

src/libcollections/str.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,11 +148,11 @@ pub fn from_char(ch: char) -> String {
148148
/// # Example
149149
///
150150
/// ```rust
151-
/// use std::str;
152151
/// let chars = ['h', 'e', 'l', 'l', 'o'];
153-
/// let string = str::from_chars(chars);
152+
/// let string = String::from_chars(chars);
154153
/// assert_eq!(string.as_slice(), "hello");
155154
/// ```
155+
#[deprecated = "use String::from_chars instead"]
156156
pub fn from_chars(chs: &[char]) -> String {
157157
chs.iter().map(|c| *c).collect()
158158
}

src/libcollections/string.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,20 @@ impl String {
9191
Err(vec)
9292
}
9393
}
94+
95+
/// Convert a vector of chars to a string
96+
///
97+
/// # Example
98+
///
99+
/// ```rust
100+
/// let chars = ['h', 'e', 'l', 'l', 'o'];
101+
/// let string = String::from_chars(chars);
102+
/// assert_eq!(string.as_slice(), "hello");
103+
/// ```
104+
#[inline]
105+
pub fn from_chars(chs: &[char]) -> String {
106+
chs.iter().map(|c| *c).collect()
107+
}
94108

95109
/// Return the underlying byte buffer, encoded as UTF-8.
96110
#[inline]

src/libregex/parse.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,7 @@ impl<'a> Parser<'a> {
510510
};
511511
self.chari = closer;
512512
let greed = try!(self.get_next_greedy());
513-
let inner = str::from_chars(
513+
let inner = String::from_chars(
514514
self.chars.as_slice().slice(start + 1, closer));
515515

516516
// Parse the min and max values from the regex.
@@ -944,7 +944,7 @@ impl<'a> Parser<'a> {
944944
}
945945

946946
fn slice(&self, start: uint, end: uint) -> String {
947-
str::from_chars(self.chars.as_slice().slice(start, end)).to_string()
947+
String::from_chars(self.chars.as_slice().slice(start, end))
948948
}
949949
}
950950

src/libuuid/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,7 @@ mod test {
685685
let hs = uuid1.to_hyphenated_str();
686686
let ss = uuid1.to_string();
687687

688-
let hsn = str::from_chars(hs.as_slice()
688+
let hsn = String::from_chars(hs.as_slice()
689689
.chars()
690690
.filter(|&c| c != '-')
691691
.collect::<Vec<char>>()

src/test/run-pass/issue-3563-3.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,7 @@ impl fmt::Show for AsciiArt {
100100
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
101101
// Convert each line into a string.
102102
let lines = self.lines.iter()
103-
.map(|line| {
104-
str::from_chars(line.as_slice()).to_string()
105-
})
103+
.map(|line| String::from_chars(line.as_slice()))
106104
.collect::<Vec<String>>();
107105

108106
// Concatenate the lines together using a new-line.

src/test/run-pass/utf8_chars.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ use std::str;
1313
pub fn main() {
1414
// Chars of 1, 2, 3, and 4 bytes
1515
let chs: Vec<char> = vec!('e', 'é', '€', '\U00010000');
16-
let s: String = str::from_chars(chs.as_slice()).to_string();
16+
let s: String = String::from_chars(chs.as_slice()).to_string();
1717
let schs: Vec<char> = s.as_slice().chars().collect();
1818

1919
assert!(s.len() == 10u);
2020
assert!(s.as_slice().char_len() == 4u);
2121
assert!(schs.len() == 4u);
22-
assert!(str::from_chars(schs.as_slice()).to_string() == s);
22+
assert!(String::from_chars(schs.as_slice()) == s);
2323
assert!(s.as_slice().char_at(0u) == 'e');
2424
assert!(s.as_slice().char_at(1u) == 'é');
2525

0 commit comments

Comments
 (0)