Commit graph

7970 commits

Author SHA1 Message Date
Clar Charr
f774cddcf2 Move placement new operators to module. 2017-06-09 19:07:26 -04:00
Clar Charr
d460aca720 Move bit ops to module. 2017-06-09 19:07:26 -04:00
Clar Charr
75677e0646 Move arithmetic ops to module. 2017-06-09 19:07:26 -04:00
Clar Charr
b9c8e99955 Move Fn to module. 2017-06-09 19:07:25 -04:00
Georg Brandl
496bd63f33 Simplify FromIterator example of Result 2017-06-09 22:20:32 +02:00
Djzin
83f1f118e5 hack around bug in emscripten 2017-06-09 07:07:58 +01:00
Scott McMurray
6d86f0c018 Use ctlz_nonzero to improve ASM from next_power_of_two 2017-06-08 23:01:39 -07:00
Scott McMurray
13e2400347 Add ctlz_nonzero & cttz_nonzero intrinsics
LLVM currently doesn't remove the "bypass if argument is zero" assembly inside branches where the value is known to be non-zero, pessimizing code that uses uN::leading_zeros
2017-06-08 23:01:39 -07:00
Tshepang Lekhonkhobe
c288864ed0 doc: a more complete explanation, and a better example 2017-06-08 22:52:54 +02:00
Squirrel
de8bbd2b16 Assert failure message easier to read
By having the left and right strings above and below on the same line it helps spot the difference between the two. E.g.

thread 'tests::test_safe_filename' panicked at 'assertion failed: `(left == right)`
left:  `"-aandb--S123.html"`
right: `"-aandb-S123.html"`',

When the strings are both on the same line it take a lot longer to spot the difference. It is a small change but the small time savings add up with repetition. This helps Rust be an excellent language to write tests in.
2017-06-08 18:38:49 +01:00
bors
e1fa8de0fb Auto merge of #42522 - frewsxcv:rollup, r=frewsxcv
Rollup of 5 pull requests

- Successful merges: #42470, #42490, #42497, #42510, #42512
- Failed merges:
2017-06-08 03:46:16 +00:00
Clar Charr
cee5a2dd20 Move Range to module. 2017-06-07 21:53:33 -04:00
Clar Charr
6f5987b05b Move ops.rs to folder. 2017-06-07 21:40:25 -04:00
bors
d8d5592596 Auto merge of #40706 - irfanhudda:doc-next-power-of-two, r=alexcrichton
Improve documentation of next_power_of_two

Clarify overflow behavior of `next_power_of_two`.

Related Issue: #18604
2017-06-08 01:07:08 +00:00
Sean McArthur
f51771939b core: allow messages in unimplemented!() macro 2017-06-07 17:06:55 -07:00
Matt Brubeck
b6193f3c00 Update docs to say iterator instead of range 2017-06-07 09:24:35 -07:00
Nick Whitney
a32ffc6797 Alias std::cmp::max/min to Ord::max/min 2017-06-06 23:00:09 -04:00
Nick Whitney
2cadc32b66 Add max and min default fns to Ord trait
Pursuant to issue #25663, this commit adds the max and min functions to the Ord trait, enabling items that implement Ord to use UFCS (ex. 1.max(2)) instead of the longer std::cmp::max(1,2) format.
2017-06-06 22:42:48 -04:00
Corey Farwell
7f8467eaaf Rollup merge of #42469 - citizen428:document-assert-macros, r=steveklabnik
Doc changes for assert macros

See #29381
2017-06-06 22:36:36 -04:00
Michael Kohl
867ed2e17d Doc changes for assert macros
See #29381
2017-06-05 16:46:12 +07:00
king6cong
018722e485 doc rewording 2017-06-05 11:02:38 +08:00
Scott McMurray
808a08a363 Add overflow checking for str::get with inclusive ranges
Fixes #42401
2017-06-04 11:08:25 -07:00
Scott McMurray
18612b21d0 Delegate str:Index(Mut) to SliceIndex<str>
Move any extra logic that the former had into the latter, so they're consistent.
2017-06-04 01:47:21 -07:00
bors
0b17b4c084 Auto merge of #42265 - Zoxc:for-sugar, r=eddyb
Change for-loop desugar to not borrow the iterator during the loop

This is enables the use of suspend points inside for-loops in movable generators. This is illegal in the current desugaring as `iter` is borrowed across the body.
2017-06-04 05:44:39 +00:00
Mark Simulacrum
1316281f2d Rollup merge of #42310 - scottmcm:deprecate-range-stepby, r=alexcrichton
Deprecate range-specific `step_by`

Deprecation attributes and test updates only.

Was replaced by an any-iterator version in https://github.com/rust-lang/rust/pull/41439

Last follow-up (this release) to https://github.com/rust-lang/rust/pull/42110#issuecomment-303210138

r? @alexcrichton
2017-06-02 09:10:42 -06:00
bors
558cd1e393 Auto merge of #41670 - scottmcm:slice-rotate, r=alexcrichton
Add an in-place rotate method for slices to libcore

A helpful primitive for moving chunks of data around inside a slice.

For example, if you have a range selected and are drag-and-dropping it somewhere else (Example from [Sean Parent's talk](https://youtu.be/qH6sSOr-yk8?t=560)).

(If this should be an RFC instead of a PR, please let me know.)

Edit: changed example
2017-06-02 07:51:20 +00:00
bors
668e698bba Auto merge of #41418 - hirschenberger:prefetch-intrinsic, r=nagisa
Adding support for the llvm `prefetch` intrinsic

Optimize `slice::binary_search` by using prefetching.
2017-06-02 04:58:09 +00:00
John Kåre Alsaker
cfdbff7c12 Change for-loop desugar to not borrow the iterator during the loop 2017-06-01 18:33:47 +02:00
Falco Hirschenberger
f83901bb89 Adding support for the llvm prefetch intrinsic
Related to #37251
2017-06-01 08:34:16 +02:00
Scott McMurray
15dff84dc3 Avoid range::step_by in another test 2017-05-31 22:35:35 -07:00
Scott McMurray
1723e063c9 Deprecate iter::range::StepBy
Only exposed as DeprecatedStepBy (as of PR 41439)
2017-05-31 22:35:34 -07:00
Scott McMurray
0967e2495d Deprecate Range*::step_by
Changed all the tests except test_range_step to use Iterator::step_by.
2017-05-31 22:35:34 -07:00
Corey Farwell
dbc9d71b17 Rollup merge of #42275 - scottmcm:try-trait, r=nikomatsakis
Lower `?` to `Try` instead of `Carrier`

The easy parts of https://github.com/rust-lang/rfcs/pull/1859, whose FCP completed without further comments.

Just the trait and the lowering -- neither the error message improvements nor the insta-stable impl for Option nor exhaustive docs.

Based on a [github search](https://github.com/search?l=rust&p=1&q=question_mark_carrier&type=Code&utf8=%E2%9C%93), this will break the following:

- 00206e34c6/src/serialize.rs (L38)
- b1325898f4/src/result.rs (L50)

The other results appear to be files from libcore or its tests.  I could also leave Carrier around after stage0 and `impl<T:Carrier> Try for T` if that would be better.

r? @nikomatsakis

Edit: Oh, and it might accidentally improve perf, based on https://github.com/rust-lang/rust/issues/37939#issuecomment-265803670, since `Try::into_result` for `Result` is an obvious no-op, unlike `Carrier::translate`.
2017-06-01 00:09:20 -04:00
Irfan Hudda
18fadb61c4 Simplify helper functions
Based on @scottmcm 's suggestion
2017-05-31 22:25:15 +05:30
Mark Simulacrum
0c339ffbc0 Rollup merge of #42329 - rap2hpoutre:patch-6, r=steveklabnik
fix links to "module-level documentation"

see https://github.com/rust-lang/rust/issues/42267
2017-05-31 10:52:49 -06:00
Mark Simulacrum
b62eb7fed8 Rollup merge of #42315 - scottmcm:rangefrom-sizehint, r=alexcrichton
RangeFrom should have an infinite size_hint

Before,
```rust
(0..).take(4).size_hint() == (0, Some(4))
```

With this change,
```rust
(0..).take(4).size_hint() == (4, Some(4))
```
2017-05-31 10:52:48 -06:00
Mark Simulacrum
c0df1d4e80 Rollup merge of #42252 - stjepang:clarify-alignof-docs, r=nikomatsakis
Clarify the docs for align_of and its variants

It's okay to have unaligned raw pointers and then use `ptr::write_unaligned` and `ptr::read_unaligned`.
However, using unaligned `&T` and `&mut T` would be undefined behavior.

The current documentation seems to indicate that everything has to be aligned, but in reality only references do. This PR changes the text of docs accordingly.

r? @sfackler
2017-05-31 10:52:46 -06:00
Mark Simulacrum
d5a7fd585f Rollup merge of #42126 - clarcharr:into_docs, r=steveklabnik
Clarify docs on implementing Into.

This was suggested by @dtolnay in #40380.

This explicitly clarifies in what circumstances you should implement `Into` instead of `From`.
2017-05-31 10:52:44 -06:00
Raphaël Huchet
69f822524f fix links to "module-level documentation" 2017-05-31 11:38:19 +02:00
Scott McMurray
7a87469af7 Give the try_trait feature its own tracking issue 2017-05-31 01:30:13 -07:00
Stjepan Glavina
c25e271858 Add 'the' 2017-05-30 21:34:50 +02:00
Scott McMurray
265dce66b6 RangeFrom should have an infinite size_hint
This makes the size_hint from things like `take` more precise.
2017-05-30 09:15:25 -07:00
Clar Charr
54bbe23b2e Clarify docs on implementing Into. 2017-05-28 16:13:56 -04:00
Djzin
b795b7b43b restore old behaviour 2017-05-28 18:10:12 +01:00
Djzin
8a973dfa24 restore old behaviour for sizes < 128 2017-05-28 15:39:47 +01:00
bors
bcf95067e4 Auto merge of #42167 - scottmcm:iter-stepby-sizehint, r=alexcrichton
Override size_hint and propagate ExactSizeIterator for iter::StepBy

Generally useful, but also a prerequisite for moving a bunch of unit tests off `Range*::step_by`.

A small non-breaking subset of https://github.com/rust-lang/rust/pull/42110 (which I closed).

Includes two small documentation changes @ivandardi requested on that PR.

r? @alexcrichton
2017-05-28 14:26:52 +00:00
Mark Simulacrum
423b410fce Rollup merge of #42260 - stjepang:document-cmp-traits-agreement, r=alexcrichton
Docs: impls of PartialEq/PartialOrd/Ord must agree

Fixes #41270.

This PR brings two improvements to the docs:

1. Docs for `PartialEq`, `PartialOrd`, and `Ord` clarify that their implementations must agree.
2. Fixes a subtle bug in the Dijkstra example for `BinaryHeap`, where the impls are inconsistent.
Thanks @Rufflewind for spotting the bug!

r? @alexcrichton
cc @frankmcsherry
2017-05-27 20:54:04 -06:00
Djzin
d4d3f53468 better respect alignment for copying tail 2017-05-27 16:39:51 +01:00
Stjepan Glavina
f5421367a2 Docs: impls of PartialEq/PartialOrd/Ord must agree 2017-05-27 17:15:32 +02:00
Djzin
74751358e6 Merge remote-tracking branch 'upstream/master' into fast-swap 2017-05-27 14:31:47 +01:00