Commit graph

7970 commits

Author SHA1 Message Date
Guillaume Gomez
76dd02025c Add missing examples for std::cell types 2016-07-11 17:13:36 +02:00
ubsan
c0bee60adb Make it nicer from @alexandermerritt 2016-07-10 23:17:02 +02:00
Guillaume Gomez
4c3cff6c65 Improve std::any module doc 2016-07-10 19:41:50 +02:00
ubsan
97003e5699 Switch around Examples and Alternatives 2016-07-10 06:13:34 +02:00
bors
f93aaf84cb Auto merge of #34365 - petrochenkov:deferr, r=eddyb
Some more pattern cleanup and bugfixing

The next part of https://github.com/rust-lang/rust/pull/34095

The most significant fixed mistake is definitions for partially resolved associated types not being updated after full resolution.
```
fn f<T: Fn()>(arg: T::Output) { .... } // <- the definition of T::Output was not updated in def_map
```
For this reason unstable associated types of stable traits, like `FnOnce::Output`, could be used in stable code when written in unqualified form. Now they are properly checked, this is a **[breaking-change]** (pretty minor one, but a crater run would be nice). The fix is not to use unstable library features in stable code, alternatively `FnOnce::Output` can be stabilized.

Besides that, paths in struct patterns and expressions `S::A { .. }` are now fully resolved as associated types. Such types cannot be identified as structs at the moment, i.e. the change doesn't make previously invalid code valid, but it improves error diagnostics.

Other changes: `Def::Err` is supported better (less chances for ICEs for erroneous code), some incorrect error messages are corrected, some duplicated error messages are not reported, ADT definitions are now available through constructor IDs, everything else is cleanup and code audit.

Fixes https://github.com/rust-lang/rust/issues/34209
Closes https://github.com/rust-lang/rust/issues/22933 (adds tests)

r? @eddyb
2016-07-09 15:16:21 -07:00
bors
459b1a4fbb Auto merge of #34709 - GuillaumeGomez:primitives, r=steveklabnik
Improve primitive integers documentation

Fixes #29335.

r? @steveklabnik
2016-07-09 06:18:55 -07:00
Alex Burka
b4ff6b028e document DoubleEndedIterator::next_back
fixes #34726
2016-07-08 23:14:32 -04:00
Guillaume Gomez
a6bbd0c1ca Improve primitive integers documentation 2016-07-08 23:03:17 +02:00
petrochenkov
d27e55c5d8 Stabilize FnOnce::Output + Fix rebase 2016-07-08 13:35:17 +03:00
Manish Goregaokar
4ee6a666e4 Rollup merge of #34688 - GuillaumeGomez:double_ended_iterator, r=steveklabnik
Improve DoubleEndedIterator examples

Fixes #34065.

r? @steveklabnik
2016-07-08 14:46:59 +05:30
Steve Klabnik
62bae0ad42 Rollup merge of #34277 - ollie27:docs_num, r=steveklabnik
Add/improve num const docs

This adds short summaries to all num consts.

r? @steveklabnik
2016-07-06 19:13:06 -04:00
Steve Klabnik
eef10e6cfc Rollup merge of #33265 - tshepang:peek, r=steveklabnik
doc: some `peek` improvements
2016-07-06 19:13:05 -04:00
Alex Crichton
0c137ab0a6 rustc: Update stage0 to beta-2016-07-06
Hot off the presses, let's update our stage0 compiler!
2016-07-06 09:29:15 -07:00
ubsan
7eabff5b5a Hopefully, it now works 2016-07-05 23:54:34 -07:00
ubsan
297e3969e2 Merge upstream/master: Fix a weird bug 2016-07-05 20:12:37 -07:00
Guillaume Gomez
630e4eb4c5 Improve DoubleEndedIterator examples 2016-07-06 01:34:58 +02:00
ubsan
451af791da Fix links, change example to english 2016-07-05 16:04:58 -07:00
ubsan
15a49fefcb Tone it down a little 2016-07-05 15:42:48 -07:00
ubsan
8c7668a903 Fix nits 2016-07-05 15:15:33 -07:00
Evgeny Safronov
ede39aeb33
feat: reinterpret precision field for strings
This commit changes the behavior of formatting string arguments
with both width and precision fields set.

Documentation says that the `width` field is the "minimum width"
that the format should take up. If the value's string does not
fill up this many characters, then the padding specified by
fill/alignment will be used to take up the required space.

This is true for all formatted types except string, which is truncated
down to `precision` number of chars and then all of `fill`, `align` and
`width` fields are completely ignored.

For example: `format!("{:/^10.8}", "1234567890);` emits "12345678".
In the contrast Python version works as the expected:
```python
>>> '{:/^10.8}'.format('1234567890')
'/12345678/'
```

This commit gives back the `Python` behavior by changing the `precision`
field meaning to the truncation and nothing more. The result string *will*
be prepended/appended up to the `width` field with the proper `fill` char.

However, this is the breaking change.

Also updated `std::fmt` docs about string precision.

Signed-off-by: Evgeny Safronov <division494@gmail.com>
2016-07-06 00:01:14 +03:00
ubsan
7ec44e6c7b Fix tests 2016-07-05 10:40:59 -07:00
Eduard Burtescu
0ec3d98702 Revert "Revert "Remove the return_address intrinsic.""
This reverts commit f698cd3a36.
2016-07-04 21:06:50 +03:00
bors
d508de6cf7 Auto merge of #34638 - zackmdavis:if_let_over_none_empty_block_arm, r=jseyfried
prefer `if let` to match with `None => {}` arm in some places

This is a spiritual succesor to #34268 / 8531d581, in which we replaced a
number of matches of None to the unit value with `if let` conditionals
where it was judged that this made for clearer/simpler code (as would be
recommended by Manishearth/rust-clippy's `single_match` lint). The same
rationale applies to matches of None to the empty block.

----

r? @jseyfried
2016-07-04 02:18:46 -07:00
Zack M. Davis
d37edef9dd prefer if let to match with None => {} arm in some places
This is a spiritual succesor to #34268/8531d581, in which we replaced a
number of matches of None to the unit value with `if let` conditionals
where it was judged that this made for clearer/simpler code (as would be
recommended by Manishearth/rust-clippy's `single_match` lint). The same
rationale applies to matches of None to the empty block.
2016-07-03 16:27:02 -07:00
bors
696b703b5a Auto merge of #34530 - alexcrichton:stabilize-1.11, r=aturon
std: Stabilize APIs for the 1.11.0 release

Although the set of APIs being stabilized this release is relatively small, the
trains keep going! Listed below are the APIs in the standard library which have
either transitioned from unstable to stable or those from unstable to
deprecated.

Stable

* `BTreeMap::{append, split_off}`
* `BTreeSet::{append, split_off}`
* `Cell::get_mut`
* `RefCell::get_mut`
* `BinaryHeap::append`
* `{f32, f64}::{to_degrees, to_radians}` - libcore stabilizations mirroring past
  libstd stabilizations
* `Iterator::sum`
* `Iterator::product`

Deprecated

* `{f32, f64}::next_after`
* `{f32, f64}::integer_decode`
* `{f32, f64}::ldexp`
* `{f32, f64}::frexp`
* `num::One`
* `num::Zero`

Added APIs (all unstable)

* `iter::Sum`
* `iter::Product`
* `iter::Step` - a few methods were added to accomodate deprecation of One/Zero

Removed APIs

* `From<Range<T>> for RangeInclusive<T>` - everything about `RangeInclusive` is
  unstable

Closes #27739
Closes #27752
Closes #32526
Closes #33444
Closes #34152
cc #34529 (new tracking issue)
2016-07-03 14:33:55 -07:00
Alex Crichton
3016626c3a std: Stabilize APIs for the 1.11.0 release
Although the set of APIs being stabilized this release is relatively small, the
trains keep going! Listed below are the APIs in the standard library which have
either transitioned from unstable to stable or those from unstable to
deprecated.

Stable

* `BTreeMap::{append, split_off}`
* `BTreeSet::{append, split_off}`
* `Cell::get_mut`
* `RefCell::get_mut`
* `BinaryHeap::append`
* `{f32, f64}::{to_degrees, to_radians}` - libcore stabilizations mirroring past
  libstd stabilizations
* `Iterator::sum`
* `Iterator::product`

Deprecated

* `{f32, f64}::next_after`
* `{f32, f64}::integer_decode`
* `{f32, f64}::ldexp`
* `{f32, f64}::frexp`
* `num::One`
* `num::Zero`

Added APIs (all unstable)

* `iter::Sum`
* `iter::Product`
* `iter::Step` - a few methods were added to accomodate deprecation of One/Zero

Removed APIs

* `From<Range<T>> for RangeInclusive<T>` - everything about `RangeInclusive` is
  unstable

Closes #27739
Closes #27752
Closes #32526
Closes #33444
Closes #34152
cc #34529 (new tracking issue)
2016-07-03 10:49:01 -07:00
bors
eebfcb8bf4 Auto merge of #34540 - jupp0r:patch-1, r=steveklabnik
Improve code example for try!

This change improves the code example for try!,
avoiding to use try! in the example code that shows
what code constructs try! can replace.
2016-07-03 10:39:53 -07:00
ubsan
9e94ebf268 Make sure the documentation compiles 2016-07-02 22:55:30 -07:00
bors
45c3a50f39 Auto merge of #34580 - eddyb:two-steps-forward-one-step-backwards, r=nagisa
Revert "Remove the return_address intrinsic."

This reverts commit b30134dbc3.

Servo might want this merged if they don't merge servo/servo#11872 soon.

cc @pnkfelix @jdm
2016-07-02 17:25:05 -07:00
ubsan
377bbfe96b Add a new alternative 2016-07-02 08:45:01 -07:00
ubsan
2413b52b88 More nits :P 2016-07-02 00:07:36 -07:00
ubsan
6928bbba3a Fix some other small nits 2016-07-02 00:00:04 -07:00
ubsan
233b45f0d7 Fix up some things which scott mentioned 2016-07-01 23:57:10 -07:00
ubsan
3d03f7541e Add more docs - mostly warnings - to std::mem::transmute 2016-07-01 23:33:44 -07:00
Eduard Burtescu
f698cd3a36 Revert "Remove the return_address intrinsic."
This reverts commit b30134dbc3.
2016-06-30 21:12:36 +03:00
Oliver Middleton
2dcfa62876 Correct MIN_EXP docs and improve EPSILON 2016-06-30 08:30:30 +01:00
Sean McArthur
db1b1919ba std: use siphash-1-3 for HashMap 2016-06-29 16:08:32 -07:00
Jupp Müller
8f3e4989a5 Improve code example for try!
This change improves the code example for try!,
avoiding to use try! in the example code that shows
what code constructs try! can replace.
2016-06-29 01:13:03 +02:00
Eduard Burtescu
b30134dbc3 Remove the return_address intrinsic. 2016-06-27 01:47:28 +03:00
bors
4b89debc7b Auto merge of #34425 - tbu-:pr_len_instead_of_size_hint, r=alexcrichton
Use `len` instead of `size_hint` where appropiate

This makes it clearer that we're not just looking for a lower bound but
rather know that the iterator is an `ExactSizeIterator`.
2016-06-24 09:03:54 -07:00
bors
7189ae3611 Auto merge of #34399 - alexcrichton:issue-audit, r=brson
std: Fix up stabilization discrepancies

* Remove the deprecated `CharRange` type which was forgotten to be removed
  awhile back.
* Stabilize the `os::$platform::raw::pthread_t` type which was intended to be
  stabilized as part of #32804
2016-06-24 03:39:47 -07:00
Alex Crichton
c3e8c178ab std: Fix up stabilization discrepancies
* Remove the deprecated `CharRange` type which was forgotten to be removed
  awhile back.
* Stabilize the `os::$platform::raw::pthread_t` type which was intended to be
  stabilized as part of #32804
2016-06-23 14:08:11 -07:00
Tobias Bucher
8ff5c4394c Use len instead of size_hint where appropiate
This makes it clearer that we're not just looking for a lower bound but
rather know that the iterator is an `ExactSizeIterator`.
2016-06-23 12:26:15 +02:00
bors
e41cdabc3e Auto merge of #34408 - Manishearth:rollup, r=Manishearth
Rollup of 7 pull requests

- Successful merges: #34190, #34363, #34367, #34383, #34387, #34394, #34404
- Failed merges:
2016-06-22 04:21:59 -07:00
Manish Goregaokar
e4ff7f0107 Rollup merge of #34190 - ollie27:wrapping_fmt, r=alexcrichton
Implement Binary, Octal, LowerHex and UpperHex for Wrapping<T>

Fixes: #33659
2016-06-22 09:51:06 +01:00
bors
3ee3267af3 Auto merge of #33976 - komamitsu:assert_eq_with_msg, r=alexcrichton
Add custom message parameter to `assert_eq!`

`assert!` macro accepts a custom message parameter and it's sometimes useful. But `assert_eq!` doesn't have it and users need to use `assert!` instead of `assert_eq!` when they want to output a custom message even if the assertion just compares two values. This pull request will resolve those cases.
2016-06-22 01:05:56 -07:00
Guillaume Gomez
469d17c2a8 Rollup merge of #34360 - dsprenkels:ops-doc, r=apasel422
Markdown formatting fix

This pull request fixes some bad markdown formatting in the[ `std::ops::RangeTo` documentation](https://doc.rust-lang.org/std/ops/struct.RangeTo.html):

![screenshot from 2016-06-19 14 29 21](https://cloud.githubusercontent.com/assets/439973/16177354/5439a9bc-362a-11e6-97e5-374fd0bcf5a2.png)
2016-06-21 23:54:28 +02:00
bors
fe96928d7d Auto merge of #34155 - ollie27:unzip, r=alexcrichton
Remove unzip() SizeHint hack

This was using an invalid iterator so is likely to end with buggy
behaviour.

It also doesn't even benefit many type in std including Vec so removing it
shouldn't cause any problems.

Fixes: #33468
2016-06-21 02:18:42 -07:00
Mitsunori Komatsu
45a63d3ff6 Add message argument to assert_eq macro 2016-06-21 15:14:15 +09:00
Tobias Bucher
208de46f8b Remove first empty line of doc comment 2016-06-19 18:52:33 +02:00