Skip to content

Commit f74e193

Browse files
committed
auto merge of #7123 : huonw/rust/more-str, r=thestinger
Moves all the remaining functions that could reasonably be methods to be methods, except for some FFI ones (which I believe @erickt is working on, possibly) and `each_split_within`, since I'm not really sure the details of it (I believe @Kimundi wrote the current implementation, so maybe he could convert it to an external iterator method on `StrSlice`, e.g. `word_wrap_iter(&self) -> WordWrapIterator<'self>`, where `WordWrapIterator` impls `Iterator<&'self str>`. It probably won't be too hard, since it's already a state machine.) This also cleans up the comparison impls for the string types, except I'm not sure how the lang items `eq_str` and `eq_str_uniq` need to be handled, so they (`eq_slice` and `eq`) remain stand-alone functions.
2 parents 8482d29 + bbcff95 commit f74e193

34 files changed

+342
-430
lines changed

src/compiletest/runtest.rs

-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ use util::logv;
2424

2525
use core::io;
2626
use core::os;
27-
use core::str;
2827
use core::uint;
2928
use core::vec;
3029

src/libextra/base64.rs

-2
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,6 @@ impl<'self> FromBase64 for &'self str {
229229

230230
#[cfg(test)]
231231
mod tests {
232-
use core::str;
233-
234232
#[test]
235233
fn test_to_base64() {
236234
assert_eq!("".to_base64(), ~"");

src/libextra/rope.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1271,7 +1271,6 @@ mod tests {
12711271

12721272
use rope::*;
12731273

1274-
use core::str;
12751274
use core::uint;
12761275
use core::vec;
12771276

src/libextra/sha1.rs

-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424

2525
use core::prelude::*;
2626

27-
use core::str;
2827
use core::uint;
2928
use core::vec;
3029

@@ -279,8 +278,6 @@ pub fn sha1() -> @Sha1 {
279278
mod tests {
280279
use sha1;
281280

282-
use core::vec;
283-
284281
#[test]
285282
fn test() {
286283
struct Test {

src/libextra/smallintmap.rs

-5
Original file line numberDiff line numberDiff line change
@@ -294,11 +294,6 @@ mod tests {
294294

295295
use super::SmallIntMap;
296296

297-
use core::local_data;
298-
use core::rand;
299-
use core::uint;
300-
use core::vec;
301-
302297
#[test]
303298
fn test_find_mut() {
304299
let mut m = SmallIntMap::new();

src/libextra/sort.rs

-3
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,6 @@ fn shift_vec<T:Copy>(dest: &mut [T],
751751
mod test_qsort3 {
752752
use sort::*;
753753

754-
use core::vec;
755754

756755
fn check_sort(v1: &mut [int], v2: &mut [int]) {
757756
let len = v1.len();
@@ -861,8 +860,6 @@ mod tests {
861860

862861
use sort::*;
863862

864-
use core::vec;
865-
866863
fn check_sort(v1: &[int], v2: &[int]) {
867864
let len = v1.len();
868865
pub fn le(a: &int, b: &int) -> bool { *a <= *b }

src/libextra/stats.rs

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use core::prelude::*;
1414

15-
use core::vec;
1615
use core::f64;
1716
use core::cmp;
1817
use core::num;

src/libextra/std.rc

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ not required in or otherwise suitable for the core library.
3737

3838
extern mod core(name = "std", vers = "0.7-pre");
3939

40+
#[cfg(stage0)]
4041
use core::{str, unstable};
4142
use core::str::{StrSlice, OwnedStr};
4243

src/libextra/tempfile.rs

-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ mod tests {
3636
use tempfile::mkdtemp;
3737

3838
use core::os;
39-
use core::str;
4039

4140
#[test]
4241
fn test_mkdtemp() {

src/libextra/terminfo/parser/compiled.rs

-1
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,6 @@ pub fn parse(file: @Reader, longnames: bool) -> Result<~TermInfo, ~str> {
313313
#[cfg(test)]
314314
mod test {
315315
use super::*;
316-
use p = core::path::Path;
317316

318317
#[test]
319318
fn test_veclens() {

src/libextra/test.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ use core::either;
2626
use core::io;
2727
use core::option;
2828
use core::result;
29-
use core::str;
3029
use core::task;
3130
use core::to_str::ToStr;
3231
use core::uint;
@@ -542,7 +541,7 @@ pub fn filter_tests(
542541
543542
// Sort the tests alphabetically
544543
fn lteq(t1: &TestDescAndFn, t2: &TestDescAndFn) -> bool {
545-
str::le(t1.desc.name.to_str(), t2.desc.name.to_str())
544+
t1.desc.name.to_str() < t2.desc.name.to_str()
546545
}
547546
sort::quick_sort(filtered, lteq);
548547

src/libextra/treemap.rs

-1
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,6 @@ mod test_treemap {
710710

711711
use core::rand::RngUtil;
712712
use core::rand;
713-
use core::str;
714713
use core::vec;
715714

716715
#[test]

src/librustc/back/rpath.rs

-3
Original file line numberDiff line numberDiff line change
@@ -199,9 +199,6 @@ pub fn minimize_rpaths(rpaths: &[Path]) -> ~[Path] {
199199
mod test {
200200
use core::prelude::*;
201201

202-
use core::os;
203-
use core::str;
204-
205202
// FIXME(#2119): the outer attribute should be #[cfg(unix, test)], then
206203
// these redundant #[cfg(test)] blocks can be removed
207204
#[cfg(test)]

src/librustc/middle/astencode.rs

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ use cstore = metadata::cstore;
1515
use driver::session::Session;
1616
use e = metadata::encoder;
1717
use metadata::decoder;
18-
use metadata::encoder;
1918
use metadata::tydecode;
2019
use metadata::tydecode::{DefIdSource, NominalType, TypeWithId, TypeParameter};
2120
use metadata::tyencode;

src/librustc/middle/resolve.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4845,7 +4845,7 @@ impl Resolver {
48454845
let mut smallest = 0;
48464846
for maybes.eachi |i, &other| {
48474847

4848-
values[i] = str::levdistance(name, other);
4848+
values[i] = name.lev_distance(other);
48494849

48504850
if values[i] <= values[smallest] {
48514851
smallest = i;

src/librustc/middle/trans/adt.rs

-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
use core::container::Map;
4848
use core::libc::c_ulonglong;
4949
use core::option::{Option, Some, None};
50-
use core::str;
5150
use core::vec;
5251

5352
use lib::llvm::{ValueRef, TypeRef, True, IntEQ, IntNE};

src/librustc/middle/trans/base.rs

-2
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ use core::libc::c_uint;
7171
use core::str;
7272
use core::uint;
7373
use core::vec;
74-
use core::local_data;
7574
use extra::time;
7675
use syntax::ast::ident;
7776
use syntax::ast_map::{path, path_elt_to_str, path_name};
@@ -3120,4 +3119,3 @@ pub fn trans_crate(sess: session::Session,
31203119

31213120
return (llcx, llmod, link_meta);
31223121
}
3123-

src/librustdoc/astsrv.rs

-2
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,6 @@ use syntax::ast;
3232
use syntax::ast_map;
3333
use syntax;
3434

35-
#[cfg(test)] use core::vec;
36-
3735
pub struct Ctxt {
3836
ast: @ast::crate,
3937
ast_map: ast_map::map

src/librustdoc/desc_to_brief_pass.rs

+6-11
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ use fold::Fold;
2424
use fold;
2525
use pass::Pass;
2626

27-
use core::str;
2827
use core::util;
2928

3029
pub fn mk_pass() -> Pass {
@@ -129,25 +128,21 @@ fn first_sentence_(s: &str) -> ~str {
129128
}
130129
});
131130
match idx {
132-
Some(idx) if idx > 2u => {
133-
str::to_owned(s.slice(0, idx - 1))
134-
}
131+
Some(idx) if idx > 2u => s.slice(0, idx - 1).to_owned(),
135132
_ => {
136133
if s.ends_with(".") {
137-
str::to_owned(s)
134+
s.to_owned()
138135
} else {
139-
str::to_owned(s)
136+
s.to_owned()
140137
}
141138
}
142139
}
143140
}
144141

145142
pub fn paragraphs(s: &str) -> ~[~str] {
146-
let mut lines = ~[];
147-
for str::each_line_any(s) |line| { lines.push(line.to_owned()); }
148143
let mut whitespace_lines = 0;
149144
let mut accum = ~"";
150-
let paras = do lines.iter().fold(~[]) |paras, line| {
145+
let paras = do s.any_line_iter().fold(~[]) |paras, line| {
151146
let mut res = paras;
152147

153148
if line.is_whitespace() {
@@ -163,9 +158,9 @@ pub fn paragraphs(s: &str) -> ~[~str] {
163158
whitespace_lines = 0;
164159

165160
accum = if accum.is_empty() {
166-
copy *line
161+
line.to_owned()
167162
} else {
168-
accum + "\n" + *line
163+
fmt!("%s\n%s", accum, line)
169164
}
170165
}
171166

src/librustdoc/extract.rs

-2
Original file line numberDiff line numberDiff line change
@@ -285,8 +285,6 @@ mod test {
285285
use extract::{extract, from_srv};
286286
use parse;
287287

288-
use core::vec;
289-
290288
fn mk_doc(source: @str) -> doc::Doc {
291289
let ast = parse::from_str(source);
292290
extract(ast, ~"")

src/librustdoc/markdown_pass.rs

+1-6
Original file line numberDiff line numberDiff line change
@@ -466,10 +466,7 @@ fn write_variant(ctxt: &Ctxt, doc: doc::VariantDoc) {
466466
}
467467

468468
fn list_item_indent(item: &str) -> ~str {
469-
let mut indented = ~[];
470-
for str::each_line_any(item) |line| {
471-
indented.push(line);
472-
}
469+
let indented = item.any_line_iter().collect::<~[&str]>();
473470

474471
// separate markdown elements within `*` lists must be indented by four
475472
// spaces, or they will escape the list context. indenting everything
@@ -539,8 +536,6 @@ mod test {
539536
use tystr_pass;
540537
use unindent_pass;
541538

542-
use core::str;
543-
544539
fn render(source: ~str) -> ~str {
545540
let (srv, doc) = create_doc_srv(source);
546541
let markdown = write_markdown_str_srv(srv, doc);

src/librustdoc/page_pass.rs

-1
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,6 @@ mod test {
157157
use doc;
158158
use extract;
159159
use page_pass::run;
160-
use core::vec;
161160

162161
fn mk_doc_(
163162
output_style: config::OutputStyle,

src/librustdoc/prune_hidden_pass.rs

-2
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,6 @@ mod test {
7777

7878
#[test]
7979
fn should_prune_hidden_items() {
80-
use core::vec;
81-
8280
let doc = mk_doc(~"#[doc(hidden)] mod a { }");
8381
assert!(doc.cratemod().mods().is_empty())
8482
}

src/librustdoc/prune_private_pass.rs

-1
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ mod test {
162162
use extract;
163163
use tystr_pass;
164164
use prune_private_pass::run;
165-
use core::vec;
166165

167166
fn mk_doc(source: ~str) -> doc::Doc {
168167
do astsrv::from_str(copy source) |srv| {

src/librustdoc/sectionalize_pass.rs

+11-16
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use fold::Fold;
1919
use fold;
2020
use pass::Pass;
2121

22-
use core::str;
22+
use core::iterator::IteratorUtil;
2323

2424
pub fn mk_pass() -> Pass {
2525
Pass {
@@ -104,39 +104,37 @@ fn sectionalize(desc: Option<~str>) -> (Option<~str>, ~[doc::Section]) {
104104
if desc.is_none() {
105105
return (None, ~[]);
106106
}
107-
let mut lines = ~[];
108-
for str::each_line_any(*desc.get_ref()) |line| { lines.push(line.to_owned()); }
109107

110108
let mut new_desc = None::<~str>;
111109
let mut current_section = None;
112110
let mut sections = ~[];
113111

114-
for lines.each |line| {
115-
match parse_header(copy *line) {
112+
for desc.get_ref().any_line_iter().advance |line| {
113+
match parse_header(line) {
116114
Some(header) => {
117115
if current_section.is_some() {
118-
sections += [copy *current_section.get_ref()];
116+
sections.push(copy *current_section.get_ref());
119117
}
120118
current_section = Some(doc::Section {
121-
header: header,
119+
header: header.to_owned(),
122120
body: ~""
123121
});
124122
}
125123
None => {
126124
match copy current_section {
127125
Some(section) => {
128126
current_section = Some(doc::Section {
129-
body: section.body + "\n" + *line,
127+
body: fmt!("%s\n%s", section.body, line),
130128
.. section
131129
});
132130
}
133131
None => {
134132
new_desc = match copy new_desc {
135133
Some(desc) => {
136-
Some(desc + "\n" + *line)
134+
Some(fmt!("%s\n%s", desc, line))
137135
}
138136
None => {
139-
Some(copy *line)
137+
Some(line.to_owned())
140138
}
141139
};
142140
}
@@ -146,15 +144,15 @@ fn sectionalize(desc: Option<~str>) -> (Option<~str>, ~[doc::Section]) {
146144
}
147145

148146
if current_section.is_some() {
149-
sections += [current_section.get()];
147+
sections.push(current_section.unwrap());
150148
}
151149

152150
(new_desc, sections)
153151
}
154152

155-
fn parse_header(line: ~str) -> Option<~str> {
153+
fn parse_header<'a>(line: &'a str) -> Option<&'a str> {
156154
if line.starts_with("# ") {
157-
Some(line.slice(2u, line.len()).to_owned())
155+
Some(line.slice_from(2))
158156
} else {
159157
None
160158
}
@@ -172,9 +170,6 @@ mod test {
172170
use extract;
173171
use sectionalize_pass::run;
174172

175-
use core::str;
176-
use core::vec;
177-
178173
fn mk_doc(source: ~str) -> doc::Doc {
179174
do astsrv::from_str(copy source) |srv| {
180175
let doc = extract::from_srv(srv.clone(), ~"");

src/librustdoc/text_pass.rs

-2
Original file line numberDiff line numberDiff line change
@@ -149,8 +149,6 @@ mod test {
149149
use sectionalize_pass;
150150
use text_pass::mk_pass;
151151

152-
use core::str;
153-
154152
fn mk_doc(source: ~str) -> doc::Doc {
155153
do astsrv::from_str(copy source) |srv| {
156154
let doc = extract::from_srv(srv.clone(), ~"");

0 commit comments

Comments
 (0)