583 Commits

Author SHA1 Message Date
bors
43d84bf32e auto merge of #15894 : treeman/rust/vec-doc, r=alexcrichton
Fill in examples for missing methods. Opt for `vec![]` instead of `vec!()`.
2014-07-22 21:26:14 +00:00
nham
366c66e171 Implement PartialEq, Eq for TrieMap, TrieSet 2014-07-22 17:04:16 -04:00
nham
9e83d29f30 Derive Hash for TrieMap and TrieSet 2014-07-22 16:36:09 -04:00
bors
2ffccb76ce auto merge of #15857 : treeman/rust/doc-dijkstra-example, r=alexcrichton
I wanted to have a slightly larger example compared to the method examples, but I'm unsure how it worked out.

Feedback would nice.
2014-07-22 16:11:14 +00:00
Jonas Hietala
94500b84d4 Main example for priority queue using dijkstra's algorithm. 2014-07-22 16:50:48 +02:00
Jonas Hietala
8d54ec8f4b doc: Normalize example style
Remove unnecessary `use std::vec::Vec`. Use ``` code blocks
with rust as default instead of spelling it out.
2014-07-22 14:06:45 +02:00
Jonas Hietala
eafcf6ba41 doc: Vec::from_raw_parts.
Also more explicit raw pointer handling in unsafe examples.
2014-07-22 14:06:45 +02:00
Jonas Hietala
4357da3560 doc: Fill vec documentation with examples.
Add more useful functions to main example.
2014-07-22 11:07:49 +02:00
Jonas Hietala
c004bebc9e doc: Use vec![] instead of vec!() in Vec. 2014-07-22 10:33:26 +02:00
bors
8d43e4474a auto merge of #15867 : cmr/rust/rewrite-lexer4, r=alexcrichton 2014-07-22 07:16:17 +00:00
Corey Richardson
35c0bf3292 Add a ton of ignore-lexer-test 2014-07-21 18:38:40 -07:00
Corey Richardson
188d889aaf ignore-lexer-test to broken files and remove some tray hyphens
I blame @ChrisMorgan for the hyphens.
2014-07-21 10:59:58 -07:00
Alex Crichton
414862db3c Test fixes from the rollup
Closes #15690 (Guide: improve error handling)
Closes #15729 (Guide: guessing game)
Closes #15751 (repair macro docs)
Closes #15766 (rustc: Print a smaller hash on -v)
Closes #15815 (Add unit test for rlibc)
Closes #15820 (Minor refactoring and features in rustc driver for embedders)
Closes #15822 (rustdoc: Add an --extern flag analagous to rustc's)
Closes #15824 (Document Deque trait and bitv.)
Closes #15832 (syntax: Join consecutive string literals in format strings together)
Closes #15837 (Update LLVM to include NullCheckElimination pass)
Closes #15841 (Rename to_str to to_string)
Closes #15847 (Purge #[!resolve_unexported] from the compiler)
Closes #15848 (privacy: Add publically-reexported foreign item to exported item set)
Closes #15849 (fix string in from_utf8_lossy_100_multibyte benchmark)
Closes #15850 (Get rid of few warnings in tests)
Closes #15852 (Clarify the std::vec::Vec::with_capacity docs)
2014-07-21 10:18:17 -07:00
P1start
37bb6ed302 Clarify the std::vec::Vec docs regarding capacity 2014-07-21 09:55:08 -07:00
Ted Horst
dfacef532d fix string in from_utf8_lossy_100_multibyte benchmark 2014-07-21 09:55:02 -07:00
Jonas Hietala
2357c443e0 Simplify and cleanup bitv examples. 2014-07-21 09:54:31 -07:00
Jonas Hietala
2957644e08 Describe BitPositions and TwoBitPositions. 2014-07-21 09:54:31 -07:00
Jonas Hietala
e68333a689 Polish bitv docs. 2014-07-21 09:54:31 -07:00
Jonas Hietala
71afdc4323 Enclose None as None. 2014-07-21 09:54:31 -07:00
Jonas Hietala
4574b2fbaa Main bitv example: prime sieve. 2014-07-21 09:54:31 -07:00
Jonas Hietala
26047f15e5 Move intersection above difference and symmetric_differance.
So all comes in the order union, intersection, difference and
symmetric_difference.
2014-07-21 09:54:31 -07:00
Jonas Hietala
b05f6050b6 Document BitvSet. 2014-07-21 09:54:31 -07:00
Jonas Hietala
681aa58214 Document Bitv. 2014-07-21 09:54:31 -07:00
Jonas Hietala
f4d9dca10d Group union, intersect and difference in Bitv. 2014-07-21 09:54:31 -07:00
Jonas Hietala
2e40078fc3 Place union as the first function, for consistency. 2014-07-21 09:54:31 -07:00
Jonas Hietala
9aaaa6b31e Move in-place functions below their iterator variants. 2014-07-21 09:54:31 -07:00
Jonas Hietala
c86873bda4 Document Deque. 2014-07-21 09:54:31 -07:00
bors
3a37ed4412 auto merge of #15806 : treeman/rust/std-doc, r=alexcrichton
Used `HashMap` and `HashSet` as the base of most examples. Could change it up with different containers, but I don't think it's a big deal.
2014-07-20 17:46:32 +00:00
Patrick Walton
6f99a27886 librustc: Implement lifetime elision.
This implements RFC 39. Omitted lifetimes in return values will now be
inferred to more useful defaults, and an error is reported if a lifetime
in a return type is omitted and one of the two lifetime elision rules
does not specify what it should be.

This primarily breaks two uncommon code patterns. The first is this:

    unsafe fn get_foo_out_of_thin_air() -> &Foo {
        ...
    }

This should be changed to:

    unsafe fn get_foo_out_of_thin_air() -> &'static Foo {
        ...
    }

The second pattern that needs to be changed is this:

    enum MaybeBorrowed<'a> {
        Borrowed(&'a str),
        Owned(String),
    }

    fn foo() -> MaybeBorrowed {
        Owned(format!("hello world"))
    }

Change code like this to:

    enum MaybeBorrowed<'a> {
        Borrowed(&'a str),
        Owned(String),
    }

    fn foo() -> MaybeBorrowed<'static> {
        Owned(format!("hello world"))
    }

Closes #15552.

[breaking-change]
2014-07-19 13:10:58 -07:00
bors
ca38434829 auto merge of #15638 : blake2-ppc/rust/ptr-arithmetic-chars, r=huonw
Reimplement the string slice's `Iterator<char>` by wrapping the already efficient
slice iterator.

The iterator uses our guarantee that the string contains valid UTF-8, but its only unsafe
code is transmuting the decoded `u32` into `char`.

Benchmarks suggest that the runtime of `Chars` benchmarks are reduced by up to 30%,
runtime of `Chars` reversed reduced by up to 60%.

```
BEFORE
test str::bench::char_indicesator                          ... bench:       124 ns/iter (+/- 1)
test str::bench::char_indicesator_rev                      ... bench:       188 ns/iter (+/- 9)
test str::bench::char_iterator                             ... bench:       122 ns/iter (+/- 2)
test str::bench::char_iterator_ascii                       ... bench:       302 ns/iter (+/- 41)
test str::bench::char_iterator_for                         ... bench:       123 ns/iter (+/- 4)
test str::bench::char_iterator_rev                         ... bench:       189 ns/iter (+/- 14)
test str::bench::char_iterator_rev_for                     ... bench:       177 ns/iter (+/- 4)

AFTER
test str::bench::char_indicesator                          ... bench:        85 ns/iter (+/- 3)
test str::bench::char_indicesator_rev                      ... bench:        82 ns/iter (+/- 2)
test str::bench::char_iterator                             ... bench:       100 ns/iter (+/- 3)
test str::bench::char_iterator_ascii                       ... bench:       317 ns/iter (+/- 3)
test str::bench::char_iterator_for                         ... bench:        86 ns/iter (+/- 2)
test str::bench::char_iterator_rev                         ... bench:        80 ns/iter (+/- 6)
test str::bench::char_iterator_rev_for                     ... bench:        68 ns/iter (+/- 0)
```

Note: Branch name is no longer indicative of the implementation.
2014-07-19 14:06:39 +00:00
Jonas Hietala
41729b83bc Document some trait methods. 2014-07-19 12:26:18 +02:00
bors
fb4c3f0af2 auto merge of #15752 : nham/rust/dlist_docs, r=alexcrichton
Someone rightfully complained in IRC that DList was lacking examples. Here are some.
2014-07-19 07:11:33 +00:00
bors
5980aa0f22 auto merge of #15727 : fhahn/rust/remove-some-unwraps, r=alexcrichton
When looking through the `btree` code, I stumbled over a couple of `unwraps` that could be avoided.
2014-07-18 07:51:22 +00:00
bors
8a308b167f auto merge of #15725 : aochagavia/rust/vec, r=alexcrichton
* Deprecated `to_owned` in favor of `to_vec`
* Deprecated `into_owned` in favor of `into_vec`

[breaking-change]
2014-07-18 03:46:23 +00:00
nham
7ee45aa6e5 Add examples for DList methods rotate_forward, rotate_backward, append, prepend and insert_when 2014-07-17 22:49:04 -04:00
Steve Klabnik
226b7d1b72 Guide: strings 2014-07-17 20:50:14 -04:00
root
9e59c76263 Add more tests for str Chars iterator
Test iterating (decoding) every codepoint.
2014-07-18 00:59:09 +02:00
Patrick Walton
de70d76373 librustc: Remove cross-borrowing of Box<T> to &T from the language,
except where trait objects are involved.

Part of issue #15349, though I'm leaving it open for trait objects.
Cross borrowing for trait objects remains because it is needed until we
have DST.

This will break code like:

    fn foo(x: &int) { ... }

    let a = box 3i;
    foo(a);

Change this code to:

    fn foo(x: &int) { ... }

    let a = box 3i;
    foo(&*a);

[breaking-change]
2014-07-17 14:05:36 -07:00
root
d6b42c2463 str: Add better tests for string slice's Chars iterator
Test using for ch s.chars() { black_box(ch) } to have a test that should
force the iterator to run its full decoding computations.
2014-07-17 20:21:53 +02:00
Adolfo Ochagavía
8107ef77f0 Rename functions in the CloneableVector trait
* Deprecated `to_owned` in favor of `to_vec`
* Deprecated `into_owned` in favor of `into_vec`

[breaking-change]
2014-07-17 16:35:48 +02:00
bors
9fc8394d3b auto merge of #15668 : steveklabnik/rust/tree_set_example, r=alexcrichton
Someone asked for an example usage of this on IRC, so I tossed together the simplest one. Obviously, this isn't up to snuff, but it's better than nothing.
2014-07-17 08:01:21 +00:00
Nick Cameron
aa760a849e deprecate Vec::get 2014-07-17 12:08:31 +12:00
Steve Klabnik
ace3a77f74 Add TreeSet example. 2014-07-16 18:11:40 -04:00
Florian Hahn
1565df1ccf btree: use pattern matching instead of unwrap 2014-07-16 23:22:14 +02:00
Nick Cameron
b35d1a8368 Implement Index and IndexMut for Vec 2014-07-17 09:06:56 +12:00
bors
2692ae1ddd auto merge of #15619 : kwantam/rust/master, r=huonw
- `width()` computes the displayed width of a string, ignoring the width of control characters.
    - arguably we might do *something* else for control characters, but the question is, what?
    - users who want to do something else can iterate over chars()

- `graphemes()` returns a `Graphemes` struct, which implements an iterator over the grapheme clusters of a &str.
    - fully compliant with [UAX#29](http://www.unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries)
    - passes all [Unicode-supplied tests](http://www.unicode.org/reports/tr41/tr41-15.html#Tests29)

- added code to generate additionial categories in `unicode.py`
    - `Cn` aka `Not_Assigned`
    - categories necessary for grapheme cluster breaking

- tidied up the exports from libunicode
  - all exports are exposed through a module rather than directly at crate root.
  - std::prelude imports UnicodeChar and UnicodeStrSlice from std::char and std::str rather than directly from libunicode

closes #7043
2014-07-15 22:51:17 +00:00
Adolfo Ochagavía
584fbde5d1 Fix errors 2014-07-15 20:34:16 +02:00
Adolfo Ochagavía
c6b82c7566 Deprecate str::from_utf8_lossy
Use `String::from_utf8_lossy` instead

[breaking-change]
2014-07-15 19:55:21 +02:00
Adolfo Ochagavía
1900abdd9b Deprecate str::from_utf16_lossy
Use `String::from_utf16_lossy` instead.

[breaking-change]
2014-07-15 19:55:20 +02:00
Adolfo Ochagavía
6ac4fc7fc2 Deprecate str::from_utf16
Use `String::from_utf16` instead

[breaking-change]
2014-07-15 19:55:19 +02:00