Ben Blum
ff4ab9e147
'Borrow' stack closures rather than copying them (e.g., "|x|f(x)"), in prep for making them noncopyable.
2013-06-29 04:39:34 -04:00
Jordi Boggiano
647b4a6bcd
Optimize str::each_split_within when it is called with large limits
2013-06-29 04:53:52 +02:00
Patrick Walton
e015bee286
Rewrite each_path to allow performance improvements in the future.
...
Instead of determining paths from the path tag, we iterate through
modules' children recursively in the metadata. This will allow for
lazy external module resolution.
2013-06-28 10:44:16 -04:00
Patrick Walton
89eb995195
librustc: Fix merge fallout.
2013-06-28 10:44:16 -04:00
Patrick Walton
03ab6351cc
librustc: Rewrite reachability and forbid duplicate methods in type implementations.
...
This should allow fewer symbols to be exported.
2013-06-28 10:44:16 -04:00
Patrick Walton
8cd40f9032
libstd: Fix merge fallout.
2013-06-28 10:44:15 -04:00
Patrick Walton
f9b54541ee
librustc: Disallow "mut" from distributing over bindings.
...
This is the backwards-incompatible part of per-binding-site "mut".
2013-06-28 10:44:15 -04:00
bors
63afb8ccc8
auto merge of #7430 : huonw/rust/vec-kill, r=thestinger
2013-06-27 15:01:58 -07:00
Huon Wilson
366ca44cc8
std: silence some test warnings.
2013-06-28 01:45:24 +10:00
Huon Wilson
32d655916f
Convert vec::{reserve, reserve_at_least, capacity} to methods.
2013-06-28 00:40:47 +10:00
Brian Anderson
ac9481a438
Merge remote-tracking branch 'reusee/master' into HEAD
2013-06-24 14:09:37 -07:00
Daniel Micay
e2e39234cc
remove old_iter
...
the `test/run-pass/class-trait-bounded-param.rs` test was xfailed and
written in an ancient dialect of Rust so I've just removed it
this also removes `to_vec` from DList because it's provided by
`std::iter::to_vec`
an Iterator implementation is added for OptVec but some transitional
internal iterator methods are still left
2013-06-24 01:35:11 -04:00
Daniel Micay
d2e9912aea
vec: remove BaseIter implementation
...
I removed the `static-method-test.rs` test because it was heavily based
on `BaseIter` and there are plenty of other more complex uses of static
methods anyway.
2013-06-23 02:05:20 -04:00
reus
9b2d9a9539
replaced some 'std::' with 'extra::' in comments
2013-06-22 17:49:32 +08:00
Daniel Micay
06bec77faf
replace vec::find with the IteratorUtil method
2013-06-21 03:24:03 -04:00
Daniel Micay
49c74524e2
vec: rm old_iter implementations, except BaseIter
...
The removed test for issue #2611 is well covered by the `std::iterator`
module itself.
This adds the `count` method to `IteratorUtil` to replace `EqIter`.
2013-06-21 03:20:22 -04:00
Graydon Hoare
d904c72af8
replace #[inline(always)] with #[inline]. r=burningtree.
2013-06-18 14:48:48 -07:00
Huon Wilson
f1d971ae18
std: add Zero impls for &[] and &str.
2013-06-17 17:05:51 +10:00
bors
08c1155a22
auto merge of #7142 : alexcrichton/rust/deriving-zero, r=pcwalton
...
This allows mass-initialization of large structs without having to specify all the fields.
I'm a bit hesitant, but I wanted to get this out there. I don't really like using the `Zero` trait, because it doesn't really make sense for a type like `HashMap` to use `Zero` as the 'blank allocation' trait. In theory there'd be a new trait, but then that's adding cruft to the language which may not necessarily need to be there.
I do think that this can be useful, but I only implemented `Zero` on the basic types where I thought it made sense, so it may not be all that usable yet. (opinions?)
2013-06-16 01:52:09 -07:00
Huon Wilson
30973ccb90
std: allow any sort of string to be Added with +.
2013-06-16 10:50:28 +10:00
Huon Wilson
ee25cf8d75
std: test-fixes, remove warnings, syntax highlighting for code examples.
2013-06-16 10:50:28 +10:00
Huon Wilson
4686ed1a1d
std: continue improving the comparison trait impls for str.
...
This moves them all into the traits submodule, and delegates Ord
to the TotalOrd instance. It also deletes the stand-alone lt, gt,
ge and le functions.
2013-06-16 10:50:28 +10:00
Huon Wilson
42974d3bc4
std: simplify the string comparison implementations, using iterators.
2013-06-16 10:50:28 +10:00
Huon Wilson
f1886680e0
std: convert str::to_utf16 to a method.
2013-06-16 10:50:28 +10:00
Huon Wilson
4b18fff2be
std: convert str::{map,levdistance,subslice_offset} to methods.
...
The first two become map_chars and lev_distance. Also, remove a few
allocations in rustdoc.
2013-06-16 10:50:28 +10:00
Alex Crichton
893c70d7bc
Add Zero impls for lots of common types
2013-06-14 19:12:37 -07:00
Brian Anderson
7755018074
Revert "std: convert {vec,str}::to_owned to methods."
...
This fixes the strange random crashes in compile-fail tests.
This reverts commit 96cd61ad03
.
Conflicts:
src/librustc/driver/driver.rs
src/libstd/str.rs
src/libsyntax/ext/quote.rs
2013-06-13 19:06:47 -07:00
Huon Wilson
abadece3ba
std: remove the invalid NullTerminatedStr instance for &'static str.
...
A slice of a 'static str is still 'static, but doesn't necessarily
have the null terminator.
2013-06-13 14:12:08 +10:00
Huon Wilson
641910dc13
std: make all strings Equiv-alent to each other, generalise Path.push_many to take any type of string.
2013-06-13 10:19:34 +10:00
Huon Wilson
13460de61c
std: fix method renaming.
2013-06-12 13:09:02 +10:00
Huon Wilson
26d7b460a3
std: generalise .trim_chars to use CharEq.
2013-06-12 12:21:05 +10:00
Huon Wilson
073e82fff2
std: create Str trait for DRY. Use it on StrVector.
...
The Str trait collects the various strings types and provides a method
for coercing to a slice, so that functions and impls can be written for
generic types containing strings (e.g. &[~str], &[&str], ...) without
having to write one for each string type (assuming that the impl only
needs a slice).
2013-06-12 12:21:04 +10:00
Huon Wilson
3a1e13c7a0
std: convert str::escape_* to methods.
2013-06-12 12:21:04 +10:00
Huon Wilson
9e60e2e297
std: convert str::replace to a method.
2013-06-12 12:21:04 +10:00
Huon Wilson
12750c8893
std: methodise str::capacity
2013-06-12 12:21:04 +10:00
Huon Wilson
3ac00a9489
std: remove substr & str::count_*, methodise char_len, implement slice_chars.
...
The confusing mixture of byte index and character count meant that every
use of .substr was incorrect; replaced by slice_chars which only uses
character indices. The old behaviour of `.substr(start, n)` can be emulated
via `.slice_from(start).slice_chars(0, n)`.
2013-06-12 12:21:04 +10:00
Huon Wilson
efc71a8bdb
std: unify the str -> [u8] functions as 3 methods: .as_bytes() and .as_bytes_with_null[_consume]().
...
The first acts on &str and is not nul-terminated, the last two act on strings
that are always null terminated (&'static str, ~str and @str).
2013-06-12 12:21:04 +10:00
Huon Wilson
ba4a4778cc
std: convert str::{*shift,pop}* to methods.
2013-06-12 12:21:04 +10:00
Huon Wilson
8786bca7e2
std: convert str::repeat to a method.
2013-06-12 12:21:03 +10:00
Huon Wilson
3c23a0a836
std: replace str::append with a method
2013-06-12 12:21:03 +10:00
Huon Wilson
96cd61ad03
std: convert {vec,str}::to_owned to methods.
2013-06-12 12:21:03 +10:00
Ben Blum
967c7d828a
Replace str::raw::buf_as_slice with c_str_to_static_slice. Close #3843 .
2013-06-10 17:34:28 -04:00
Huon Wilson
e8782eeb63
fix tests, remove some warnings
2013-06-11 02:34:14 +10:00
Huon Wilson
2fa83c0503
std: replace str::is_{alphanumeric,whitespace} with the methods.
2013-06-11 01:07:52 +10:00
Huon Wilson
838191c40b
std: replace str::{starts,ends}_with with the method.
2013-06-11 01:03:24 +10:00
Huon Wilson
248b6e38b5
std: replace str::substr with the method.
2013-06-11 00:52:47 +10:00
Huon Wilson
ebefe425b9
std: remove str::to_chars
2013-06-11 00:49:19 +10:00
Huon Wilson
8c59d920a1
std: basic documentation for the new str methods
2013-06-11 00:08:57 +10:00
Huon Wilson
ccd0ac59e9
std: remove str::{connect,concat}*.
2013-06-10 23:57:03 +10:00
Huon Wilson
5a711ea7c3
clean-up unused import warnings
2013-06-10 23:15:01 +10:00
Huon Wilson
ead4468249
std: fix tests
2013-06-10 23:02:55 +10:00
Huon Wilson
ec5a028ada
std: convert str::char_at* to methods.
2013-06-10 23:02:55 +10:00
Huon Wilson
f632f46614
std: convert str::trim* to methods.
2013-06-10 23:02:55 +10:00
Huon Wilson
1553874149
std: convert str::reserve* to methods, and methodise str::push_*.
2013-06-10 23:02:55 +10:00
Huon Wilson
a64e886e3c
std: remove str::contains in favour of the method
2013-06-10 23:02:55 +10:00
Huon Wilson
017450a611
std: replace str::find_str* with a method
2013-06-10 23:02:54 +10:00
Huon Wilson
7281fb948a
std: replace str::{any,all}_between with the iterator equivalent.
2013-06-10 23:02:54 +10:00
Huon Wilson
0cfc08d81e
std: convert character-based str::find_* to methods. Add .slice_{to,from} methods.
2013-06-10 23:02:54 +10:00
Huon Wilson
76fc9be5a1
std: convert each_split_str to an iterator
2013-06-10 23:02:54 +10:00
Huon Wilson
c32fb53cf9
std: remove str::{len, slice, is_empty} in favour of methods.
2013-06-10 23:02:54 +10:00
Huon Wilson
b29cd22bce
std: replace str::all/any fns and methods with iterators
2013-06-10 23:02:54 +10:00
Huon Wilson
1e8982bdb2
std: replace str::each_split* with an iterator
2013-06-10 23:02:54 +10:00
Daniel Micay
de367157b5
remove deprecated vec::{is_empty, len} functions
2013-06-08 23:19:30 -04:00
Huon Wilson
00f5916809
std: replace the str::each* fns/methods with byte iterators
2013-06-09 02:22:23 +10:00
Huon Wilson
4b806b4d06
std: remove each_char* fns and methods from str, replaced by iterators.
2013-06-09 02:22:23 +10:00
Huon Wilson
65c7c58c8f
std: remove {all*,any*,count} in favour of iterators
2013-06-09 02:22:23 +10:00
Huon Wilson
ce4f63dcee
std: add reverse vec iterators, replace vec::each*_reverse.
2013-06-09 02:22:23 +10:00
Tim Chevalier
239b81f111
std: Change str::from_bytes to raise a condition on invalid input
...
As per #4765
2013-06-07 17:42:50 -07:00
Patrick Walton
8114d0e950
librustc: Disallow multiple patterns from appearing in a "let" declaration.
...
You can still initialize multiple variables at once with "let (x, y) = (1, 2)".
2013-06-04 21:45:42 -07:00
Daniel Micay
e900dba28a
rename the Ptr trait to RawPtr
...
Closes #6607
2013-06-03 13:50:29 -04:00
Brendan Zabarauskas
dee7c5af69
Add traits for concat and connect methods
2013-06-03 13:19:37 +10:00
Ben Striegel
c77d58fad8
Add as_c_str method on strings
2013-05-31 18:12:07 -04:00
Alex Crichton
007651cd26
Require documentation by default for libstd
...
Adds documentation for various things that I understand.
Adds #[allow(missing_doc)] for lots of things that I don't understand.
2013-05-30 01:02:55 -05:00
Alex Crichton
b04c40bb1c
Silence various warnings throughout test modules
2013-05-28 15:27:35 -05:00
Daniel Micay
0d5fdce82e
syntax highlight code examples in docstrings
2013-05-27 14:47:21 -04:00
Erick Tryzelaar
dc970c13f4
cleanup warnings from libstd
2013-05-23 17:48:16 -07:00
Patrick Walton
0c820d4123
libstd: Rename libcore to libstd and libstd to libextra; update makefiles.
...
This only changes the directory names; it does not change the "real"
metadata names.
2013-05-22 21:57:05 -07:00
Graydon Hoare
dde5860380
Remove some duplicated unused parts of std now that they're present in core.
2011-12-14 18:04:45 -08:00
Graydon Hoare
fa9ad984fb
Copy first batch of material from libstd to libcore.
2011-12-13 16:34:50 -08:00
Patrick Walton
cd0e57d2d4
stdlib: Fix spelling errors in documentation of libstd/str.rs
2011-12-13 14:53:14 -08:00
Niko Matsakis
6c95e400d8
repair more hash functions
2011-12-07 07:35:25 -08:00
Brian Anderson
89efb7d981
libstd: Update docs
2011-12-06 13:58:54 -08:00
Graydon Hoare
447414f007
Establish 'core' library separate from 'std'.
2011-12-06 12:13:04 -08:00