6111 Commits

Author SHA1 Message Date
Guillaume Gomez
99c2f72814 Rollup merge of #36363 - GuillaumeGomez:add_urls, r=steveklabnik
Add urls

r? @steveklabnik
2016-09-14 17:15:37 +02:00
bors
739d57180f Auto merge of #36041 - ahmedcharles:try, r=nrc
Replace try! with ?.
2016-09-13 22:41:34 -07:00
bors
2fd060815f Auto merge of #36181 - seanmonstar:likely, r=nikomatsakis
core: add likely and unlikely intrinsics

I'm no good at reading assembly, but I have tried a stage1 compiler with this patch, and it does cause different asm output. Additionally, testing this compiler on my httparse crate with some `likely` usage added in to the branches does affect benchmarks. However, I'm sure a codegen test should be included, if anyone knows what it should look like.

There isn't an entry in `librustc_trans/context.rs` in this diff, because it already exists (`llvm.expect.i1` is used for array indices).

----

Even though this does affect httparse benchmarks, it doesn't seem to affect it the same way GCC's `__builtin_expect` affects picohttpparser. I was confused that the deviation on the benchmarks grew hugely when testing this, especially since I'm absolutely certain that the branchs where I added `likely` were always `true`. I chalk that up to GCC and LLVM handle branch prediction differently.

cc #26179
2016-09-13 10:54:55 -07:00
Steven Fackler
7bd25a3048 Remove stray attribute 2016-09-12 15:55:02 -07:00
Alex Burka
bd1ae637f8 remove ExactSizeIterator from RangeInclusive<u/isize> 2016-09-12 17:06:53 +00:00
Ahmed Charles
bfd123d1e9 Use question_mark feature in libcore. 2016-09-11 16:00:50 -07:00
athulappadan
41881e85bd Documentation for default types modified 2016-09-11 22:58:01 +05:30
athulappadan
49e77dbf25 Documentation of what does for each type 2016-09-11 17:00:09 +05:30
ggomez
e3153cfd88 Improve Result doc 2016-09-11 11:58:20 +02:00
ggomez
57a6037951 Improve Option doc 2016-09-11 11:58:20 +02:00
ggomez
48dc0ba307 Improve Copy trait doc 2016-09-11 11:58:20 +02:00
ggomez
3d289278ee Improve Clone doc 2016-09-11 11:58:17 +02:00
Vadim Petrochenkov
62cb7510ac Improve Eq deriving 2016-09-10 22:37:06 +03:00
Keegan McAllister
72e103fe90 Tweak std::mem docs
Fixes #29362.
2016-09-10 10:48:01 -07:00
Steven Fackler
63fecad2e7 Inherit overflow checks for sum and product 2016-09-10 10:06:33 -07:00
Vadim Petrochenkov
2a2c9d38c7 Improve shallow Clone deriving 2016-09-10 18:43:27 +03:00
Matthew Piziak
f6c4fcf128 fix silent overflows on Step impls
r? @eddyb
2016-09-09 12:21:01 -04:00
Justin LeFebvre
a77b55d58f remove the extraneous not_equal implementation for slices. 2016-09-06 20:39:58 -04:00
bors
cbe4de78e2 Auto merge of #35845 - frewsxcv:result-into-iter, r=GuillaumeGomez
Indicate where `core::result::IntoIter` is created.

None
2016-09-05 14:41:16 -07:00
Corey Farwell
5652b62a6b Indicate where core::result::IntoIter is created. 2016-09-03 16:56:22 -04:00
bors
d128e6bc74 Auto merge of #35856 - phimuemue:master, r=brson
Introduce max_by/min_by on iterators

See https://github.com/rust-lang/rfcs/issues/1722 for reference.

It seems that there is `min`, `max` (simple computation of min/max), `min_by_key`, `max_by_key` (min/max by comparing mapped values) but no `min_by` and `max_by` (min/max according to comparison function). However, e.g. on vectors or slices there is `sort`, `sort_by_key` and `sort_by`.
2016-09-02 21:02:41 -07:00
Jonathan Turner
445fe52b72 Rollup merge of #36099 - skade:better-try-documentation, r=steveklabnik
Document try!'s error conversion behaviour

try!'s documentation currently doesn't document the error conversion behaviour of the macro. This patch extends the documentation.

Open questions:
* is it worthwhile to have seperate examples with and without wrapping behaviour? It's not immediately obvious that From<T> for T is always defined. Though this is necessary for the macro to work in any case, is this the place to expect that knowledge.
2016-09-02 15:28:51 -07:00
Jonathan Turner
c330376a4d Rollup merge of #35793 - matthew-piziak:add-rhs-example, r=steveklabnik
demonstrate `RHS != Self` use cases for `Add` and `Sub`
2016-09-02 15:28:50 -07:00
Sean McArthur
b778f7fa01 core: add likely and unlikely intrinsics 2016-09-02 10:29:32 -07:00
Florian Gilcher
0f8eb81011 Document try!'s error conversion behaviour 2016-09-01 19:16:19 +02:00
bors
b2799a56a1 Auto merge of #35755 - SimonSapin:char_convert, r=alexcrichton
Implement std::convert traits for char

This is motivated by avoiding the `as` operator, which sometimes silently truncates, and instead use conversions that are explicitly lossless and infallible.

I’m less certain that `From<u8> for char` should be implemented: while it matches an existing behavior of `as`, it’s not necessarily the right thing to use for non-ASCII bytes. It effectively decodes bytes as ISO/IEC 8859-1 (since Unicode designed its first 256 code points to be compatible with that encoding), but that is not apparent in the API name.
2016-09-01 02:53:28 -07:00
Matthew Piziak
9a400f0a31 replace ../ with ../../std/ to support core docs 2016-08-31 18:17:44 -04:00
Jonathan Turner
e845da90f9 Rollup merge of #36083 - GuillaumeGomez:missing_convert_urls, r=steveklabnik
Add missing urls into convert module

r? @steveklabnik
2016-08-31 13:53:34 -07:00
Jonathan Turner
bfe51295b3 Rollup merge of #35927 - matthew-piziak:bitandassign-example, r=GuillaumeGomez
replace `BitAndAssign` example with something more evocative

This is the augmented-assignment version of PR #35809.

r? @GuillaumeGomez
2016-08-31 13:53:33 -07:00
Guillaume Gomez
b712f74508 Add missing urls into convert module 2016-08-31 16:15:19 +02:00
Jonathan Turner
0cb507394e Rollup merge of #36165 - fanzier:fix-typo, r=GuillaumeGomez
Fix typo in PartialOrd docs

The inline code was formatted incorrectly because of the backtick.
2016-08-31 06:29:12 -07:00
Jonathan Turner
2bfb20f392 Rollup merge of #35926 - matthew-piziak:bit-or-xor-examples, r=GuillaumeGomez
add evocative examples for `BitOr` and `BitXor`

These are exactly equivalent to PR #35809, with one caveat: I do not believe there is a non-bitwise binary XOR operator in Rust, so here it's expressed as `(a || b) && !(a && b)`.

Alternative decompositions are `(a && !b) || (!a && b)` and `(a || b) && (!a || !b)`.  Let me know if you think one of those would be clearer.

r? @GuillaumeGomez
2016-08-31 06:29:08 -07:00
Jonathan Turner
45ca620383 Rollup merge of #35758 - matthew-piziak:vec-assert-over-println-remaining, r=GuillaumeGomez
accumulate vector and assert for RangeFrom and RangeInclusive examples

PR #35695 for `Range` was merged, so it seems that this side-effect-free style is preferred for Range* examples. This PR performs the same translation for `RangeFrom` and `RangeInclusive`. It also removes what looks to be an erroneously commented line for `#![feature(step_by)]`, and an unnecessary primitive-type annotation in `0u8..`.
2016-08-31 06:29:08 -07:00
Fabian Zaiser
56edae2f42 Fix typo in PartialOrd docs 2016-08-31 13:50:58 +02:00
Matthew Piziak
ba69bc8b40 replace BitAndAssign example with something more evocative
This is the augmented-assignment version of PR #35809.

r? @GuillaumeGomez

improved documentation a la PR #35993
2016-08-30 15:55:11 -04:00
Matthew Piziak
8ca9fa11f9 add evocative examples for BitOr and BitXor
These are exactly equivalent to PR #35809, with one caveat: I do not believe there is a non-bitwise binary "xor" operator in Rust, so here it's expressed as (a || b) && !(a && b).

r? @GuillaumeGomez

improved documentation a la PR #35993
2016-08-30 15:45:37 -04:00
Guillaume Gomez
0c33197b90 Rollup merge of #35993 - matthew-piziak:bitwise-and-redux, r=GuillaumeGomez
improve `BitAnd` trait documentation

This pull request is based on the discussion in PR #35927.

Add a module-level note that `&&` and `||` are short-circuiting operators and not overloadable.

Add a simple `Scalar` example that lifts the `&` operator to a trivial struct tuple.

Make `BooleanVector` a struct tuple.

Derive `PartialEq` for `BooleanVector` instead of implementing it.

Adds a `fn main` wrapper so that the example can integrate with Rust Playground.
2016-08-30 10:39:06 +02:00
Guillaume Gomez
325b7111c2 Rollup merge of #35895 - F001:patch-1, r=steveklabnik
Fix documentation in cell mod

The implementation of Rc type in this doc is outdated.
2016-08-30 10:39:06 +02:00
Guillaume Gomez
b4a6b6bd9e Rollup merge of #35863 - matthew-piziak:shl-example, r=steveklabnik
add evocative examples for `Shl` and `Shr`

r? @steveklabnik
2016-08-30 10:39:06 +02:00
Guillaume Gomez
aa3ee1d05e Rollup merge of #35810 - matthew-piziak:fn-trait-example, r=steveklabnik
improve documentation for `Fn*` traits

This PR is not yet a serious attempt at contribution. Rather, I'm opening this for discussion. I can think of a few things we may want to accomplish with the documentation of the `Fn`, `FnMut`, and `FnOnce` traits:
- the relationship between these traits and the closures that implement them
- examples of non-closure implementations
- the relationship between these traits and Rust's ownership semantics
2016-08-30 10:39:05 +02:00
Guillaume Gomez
ff45e6195b Rollup merge of #35771 - matthew-piziak:range-inclusive-example-error, r=steveklabnik
show how iterating over `RangeTo` and `RangeToInclusive` fails

Feedback on PR #35701 seems to be positive, so this does the same thing for `RangeTo` and `RangeToInclusive`.
2016-08-30 10:39:05 +02:00
philipp
5928be1d9b Changed issue number to 36105 2016-08-29 19:43:18 +02:00
Simon Sapin
f040208d53 Implement TryFrom<u32> for char
For symmetry with From<char> for u32.
2016-08-29 17:34:02 +02:00
Simon Sapin
41d0a89e3a Implement From<char> for u32, and From<u8> for char
These fit with other From implementations between integer types.

This helps the coding style of avoiding the 'as' operator that sometimes
silently truncates, and signals that these specific conversions are
lossless and infaillible.
2016-08-29 17:34:02 +02:00
Matthew Piziak
89f7e92698 demonstrate RHS != Self use cases for Add and Sub
remove extra `../`s
2016-08-29 11:24:22 -04:00
Matthew Piziak
e2d9974b3b improve BitAnd trait documentation
This pull request is based on the discussion in PR #35927.

Add a module-level note that `&&` and `||` are short-circuiting operators and not overloadable.

Add a simple `Scalar` example that lifts the `&` operator to a trivial struct tuple.

Make `BooleanVector` a struct tuple.

Derive `PartialEq` for `BooleanVector` instead of implementing it.

Adds a `fn main` wrapper so that the example can integrate with Rust Playground.

simplified bitand expression

add a comment explaining what "rhs" means
2016-08-26 13:02:25 -04:00
Matthew Piziak
50e0fbc904 accumulate vector and assert for RangeFrom and RangeInclusive examples
PR #35695 for `Range` was approved, so it seems that this side-effect-free style is preferred for Range* examples. This PR performs the same translation for `RangeFrom` and `RangeInclusive`. It also removes what looks to be an erroneously commented line for `#![feature(step_by)]`, and an unnecessary primitive-type annotation in `0u8..`.

add `fn main` wrappers to enable Rust Playground "Run" button
2016-08-26 11:54:32 -04:00
Andrew Paseltiner
2b10df7f24
Replace unnecessary uses of TraitObject with casts 2016-08-26 06:37:36 -04:00
bors
eaf71f8d10 Auto merge of #35906 - jseyfried:local_prelude, r=eddyb
Use `#[prelude_import]` in `libcore` and `libstd`

r? @eddyb
2016-08-25 20:45:32 -07:00
changchun.fan
f4c55dd08f Fix documentation in cell mod 2016-08-26 09:13:59 +08:00