Commit Graph

6772 Commits

Author SHA1 Message Date
Corey Farwell 2d9893fda7 Rollup merge of #43423 - xliiv:cell-example, r=steveklabnik
Add simple docs example for struct Cell
2017-08-02 01:22:27 +00:00
Tobias Bucher bbb5311ad6 Document the from_str_radix panic
CC #42034
2017-07-30 23:20:54 +02:00
Mark Simulacrum f205f48a00 Rollup merge of #43409 - tshepang:concise, r=steveklabnik
doc: make into_iter example more concise

Also, remove dupe example
2017-07-29 18:03:51 -06:00
Esteban Küber 4f7834e32c Use rustc_on_unimplemented's trait name argument in try 2017-07-27 19:18:22 -07:00
bors ddaab61101 Auto merge of #43373 - alexcrichton:stabilize-1.20.0, r=aturon
Stabilize more APIs for the 1.20.0 release

In addition to the few stabilizations that have already landed, this cleans up the remaining APIs that are in `final-comment-period` right now to be stable by the 1.20.0 release
2017-07-26 23:40:48 +00:00
Mark Simulacrum ed09d6dfe1 Rollup merge of #43471 - ollie27:try_from_ints, r=nagisa
Add missing impl and tests for int to int TryFrom impls

These were missing from #43248.

r? @nagisa
2017-07-26 06:15:08 -06:00
Mark Simulacrum b5b7266b78 Rollup merge of #42959 - SimonSapin:nonzero-checked, r=sfackler
Make the "main" constructors of NonZero/Shared/Unique return Option

Per discussion in https://github.com/rust-lang/rust/issues/27730#issuecomment-303939441.

This is a breaking change to unstable APIs.

The old behavior is still available under the name `new_unchecked`. Note that only that one can be `const fn`, since `if` is currently not allowed in constant contexts.

In the case of `NonZero` this requires adding a new `is_zero` method to the `Zeroable` trait. I mildly dislike this, but it’s not much worse than having a `Zeroable` trait in the first place. `Zeroable` and `NonZero` are both unstable, this can be reworked later.
2017-07-26 06:15:01 -06:00
bors c417ee9ae8 Auto merge of #43320 - alexcrichton:new-bootstrap, r=Mark-Simulacrum
Bump master to 1.21.0

This commit bumps the master branch's version to 1.21.0 and also updates the
bootstrap compiler from the freshly minted beta release.
2017-07-25 16:13:16 +00:00
Alex Crichton 16707d4348 std: Stabilize the str_{mut,box}_extras feature
Stabilizes

* `<&mut str>::as_bytes_mut`
* `<Box<str>>::into_boxed_bytes`
* `std::str::from_boxed_utf8_unchecked`
* `std::str::from_utf8_mut`
* `std::str::from_utf8_unchecked_mut`

Closes #41119
2017-07-25 07:10:42 -07:00
Alex Crichton 20b4f86d13 Stabilize the compile_error_macro feature
Stabilizes:

* `compile_error!` as a macro defined by rustc

Closes #40872
2017-07-25 07:09:31 -07:00
Alex Crichton daeb6077c8 std: Stabilize manually_drop feature
Stabilizes

* `core::mem::ManuallyDrop`
* `std::mem::ManuallyDrop`
* `ManuallyDrop::new`
* `ManuallyDrop::into_inner`
* `ManuallyDrop::drop`
* `Deref for ManuallyDrop`
* `DerefMut for ManuallyDrop`

Closes #40673
2017-07-25 07:09:31 -07:00
Alex Crichton 3fae48107f std: Stabilize utf8_error_error_len feature
Stabilizes:

* `Utf8Error::error_len`

Closes #40494
2017-07-25 07:09:31 -07:00
Alex Crichton 46de2af063 std: Stabilize str_checked_slicing feature
Stabilized

* `<str>::get`
* `<str>::get_mut`
* `<str>::get_unchecked`
* `<str>::get_unchecked_mut`

Closes #39932
2017-07-25 07:09:31 -07:00
Alex Crichton 64c1b23374 std: Stabilize option_entry feature
Stabilized:

* `Option::get_or_insert`
* `Option::get_or_insert_with`

Closes #39288
2017-07-25 07:09:31 -07:00
Alex Crichton 4c9c6e824b std: Stabilize char_escape_debug
Stabilizes:

* `<char>::escape_debug`
* `std::char::EscapeDebug`

Closes #35068
2017-07-25 07:09:31 -07:00
Alex Crichton 9010567dcc Bump master to 1.21.0
This commit bumps the master branch's version to 1.21.0 and also updates the
bootstrap compiler from the freshly minted beta release.
2017-07-25 07:03:19 -07:00
Oliver Middleton 9ea65a8a71 Add missing impl and tests for int to int TryFrom impls 2017-07-25 06:19:30 +01:00
bors 917260ebc2 Auto merge of #43325 - ollie27:overflowing_literals, r=arielb1
Fix overflowing_literals lint for large f32s

Float literals need to be parsed as the correct type so they can be
rounded correctly.
2017-07-25 04:00:19 +00:00
bors 7c46c6c59d Auto merge of #43248 - llogiq:num-try-from, r=nagisa
improve the TryFrom implementations

This removes the need for a 128 bit storage by making use of the fact that there can be either no over/underflow, either one or both, and each time the target type suffices to hold the limit for comparison. This also means that the implementation will work in targets without 128bit support (unless it's for 128bit types, of course).

The downside is that the code looks a bit more complex.
2017-07-25 00:48:14 +00:00
Tymoteusz Jankowski d429a4eac8 s/immutable/my_struct 2017-07-24 23:43:34 +02:00
Tshepang Lekhonkhobe 42dae9d96d doc: make into_iter example more concise 2017-07-24 23:24:42 +02:00
Andre Bogus 72ef15e0df improve the TryFrom implementations
This removes the need for a 128 bit storage by making use of the fact that
there can be either no over/underflow, either one or both, and each time
the target type suffices to hold the limit for comparison.

The downside is that the code looks a bit more complex.

This test code included in this commit is from @oyvindln 's PR. They also
greatly helped fixing a number of errors I made along the way. Thanks a lot!
2017-07-24 22:41:05 +02:00
Tymoteusz Jankowski beb072a893 empty lines 2017-07-24 21:45:21 +02:00
Tymoteusz Jankowski 8286075346 ci fix? 2017-07-24 18:07:51 +02:00
Tymoteusz Jankowski 3c535952bc review fixes 2017-07-24 18:01:50 +02:00
Mark Simulacrum 659bfe5d57 Rollup merge of #43428 - waywardmonkeys:doc-fixes, r=estebank
Fix some doc/comment typos.
2017-07-24 09:16:38 -06:00
Tymoteusz Jankowski bb65d32568 add prose 2017-07-24 16:23:26 +02:00
bors 6e0dc54872 Auto merge of #43413 - mandeep:ops-generics, r=alexcrichton
Add generic example of std::ops::Sub in doc comments

This PR adds an example of using generics with std::ops::Sub and is a follow up of PR #41612 and is related to issue #29365. I also wanted to add examples to Mul and Div, but I think these two traits are already loaded with examples.
2017-07-24 00:24:16 +00:00
Bruce Mitchener 539df8121b Fix some doc/comment typos. 2017-07-23 22:48:01 +07:00
bors 6270257f4e Auto merge of #43416 - tshepang:extra-layer, r=alexcrichton
doc: provide an actual equivalent to filter_map
2017-07-23 13:04:12 +00:00
Tymoteusz Jankowski 236b7487d5 Add simple docs example for struct Cell 2017-07-23 14:28:29 +02:00
bors 764b57ef56 Auto merge of #43406 - canndrew:never-impl-clone, r=alexcrichton
Add missing `!: Clone` impl

Fixes #43296

(untested because I'm having computer troubles, but a one-liner can't break anything right?)
2017-07-23 04:25:39 +00:00
Tshepang Lekhonkhobe fc90064546 doc: provide an actual equivalent to filter_map 2017-07-22 23:22:01 +02:00
Simon Sapin f732911cf5 Fix unstable feature name for some impls for Unique<T> 2017-07-22 20:38:40 +02:00
Simon Sapin a4edae95ad Add conversions from references to NonZero pointers, Unique, and Shared 2017-07-22 20:38:40 +02:00
Simon Sapin 1ef24bb3e2 Implement From<Unique<T>> for Shared<T> 2017-07-22 20:38:40 +02:00
Simon Sapin ddaf9b24f0 Rename {NonZero,Shared,Unique}::new_checked to new 2017-07-22 20:38:39 +02:00
Simon Sapin 0a08ad0443 Rename {NonZero,Shared,Unique}::new to new_unchecked 2017-07-22 20:38:16 +02:00
Simon Sapin e9af03a222 Add new_checked(…) -> Option<Self> to NonZero, Unique, and Shared. 2017-07-22 20:37:52 +02:00
mandeep ae7b1f9f2c Add generic example of std::ops::Sub in doc comments 2017-07-22 12:48:32 -05:00
bors f8d485f53d Auto merge of #43367 - alexcrichton:remove-inline-always, r=sfackler
std: Cut down #[inline] annotations where not necessary

This PR cuts down on a large number of `#[inline(always)]` and `#[inline]`
annotations in libcore for various core functions. The `#[inline(always)]`
annotation is almost never needed and is detrimental to debug build times as it
forces LLVM to perform inlining when it otherwise wouldn't need to in debug
builds. Additionally `#[inline]` is an unnecessary annoation on almost all
generic functions because the function will already be monomorphized into other
codegen units and otherwise rarely needs the extra "help" from us to tell LLVM
to inline something.

Overall this PR cut the compile time of a [microbenchmark][1] by 30% from 1s to
0.7s.

[1]: https://gist.github.com/alexcrichton/a7d70319a45aa60cf36a6a7bf540dd3a
2017-07-22 16:06:12 +00:00
Andrew Cann c0fa16afc9 Add !: Clone impl 2017-07-22 17:21:05 +08:00
Alex Crichton 53d8b1d051 std: Cut down #[inline] annotations where not necessary
This PR cuts down on a large number of `#[inline(always)]` and `#[inline]`
annotations in libcore for various core functions. The `#[inline(always)]`
annotation is almost never needed and is detrimental to debug build times as it
forces LLVM to perform inlining when it otherwise wouldn't need to in debug
builds. Additionally `#[inline]` is an unnecessary annoation on almost all
generic functions because the function will already be monomorphized into other
codegen units and otherwise rarely needs the extra "help" from us to tell LLVM
to inline something.

Overall this PR cut the compile time of a [microbenchmark][1] by 30% from 1s to
0.7s.

[1]: https://gist.github.com/alexcrichton/a7d70319a45aa60cf36a6a7bf540dd3a
2017-07-20 12:01:32 -07:00
bors 9bbbd29e82 Auto merge of #42859 - eddyb:const-size-and-align-of, r=nikomatsakis
Implement const fn {size,align}_of.

Fixes #34078.

r? @nikomatsakis
2017-07-19 16:58:02 +00:00
Eduard-Mihai Burtescu 148718b4f3 Implement const fn {size,align}_of. 2017-07-19 14:46:54 +03:00
Oliver Middleton 697491c14d Fix overflowing_literals lint for large f32s
Float literals need to be parsed as the correct type so they can be
rounded correctly.
2017-07-19 03:22:45 +01:00
Mark Simulacrum ac9e9e5075 Rollup merge of #43292 - kennytm:fix-quasi-quoting-warning-in-rustbuild, r=alexcrichton
Workaround "Quasi-quoting is inefficient" warning in incremental rustbuild introduced in #43252.

After #43252 is merged, building stage0 libcore with `-i` (`--incremental`) flag will cause 17 "Quasi-quoting might make incremental compilation very inefficient: NtExpr(..)" warnings, as in #40946.

```
warning: Quasi-quoting might make incremental compilation very inefficient: NtExpr(..)
   --> src/libcore/default.rs:133:21
    |
133 |             #[doc = $doc]
    |                     ^^^^
...
139 | default_impl! { (), (), "Returns the default value of `()`" }
    | ------------------------------------------------------------- in this macro invocation
(× 17)
```

True fix for #40946 will take at least 12 weeks from now to make into the next stage0, so it is quicker to workaround it in libcore instead.

cc @vbrandl @jseyfried
2017-07-18 09:41:32 -06:00
Mark Simulacrum b83285bd29 Rollup merge of #42837 - rthomas:29355-error, r=steveklabnik
Update docs on Error struct. #29355

This adds a pretty contrived example of the usage of fmt::Error. I am
very open to suggestions for a better one.

I have also highlighted the fmt::Error vs std::error::Error.

r? @steveklabnik
2017-07-18 09:41:29 -06:00
kennytm 2d6c10f6f4 Fix "Quasi-quoting is inefficient" warning in incremental rustbuild.
After #43252 is merged, building stage0 libcore with -i (--incremental)
flag will cause 17 "Quasi-quoting might make incremental compilation very
inefficient: NtExpr(..)" warnings, as in #40946.

Fixing the warning in #40946 will take 12 weeks from now to make into the
next stage0, so it is quicker to workaround it in libcore instead.
2017-07-18 01:49:40 +08:00
bors 8f1339af2e Auto merge of #43237 - zackmdavis:missing_sum_and_product_for_128_bit_integers, r=nagisa
add u128/i128 to sum/product implementors

Resolves #43235.
2017-07-16 12:42:56 +00:00