|  | 
|  | 1 | +Version 1.31.0 (2018-12-06) | 
|  | 2 | +========================== | 
|  | 3 | + | 
|  | 4 | +Language | 
|  | 5 | +-------- | 
|  | 6 | +- 🎉 [This version marks the release of the 2018 edition of Rust.][54057] 🎉  | 
|  | 7 | +- [New lifetime elision rules now allow for eliding lifetimes in functions and | 
|  | 8 | + impl headers.][54778] E.g. `impl<'a> Reader for BufReader<'a> {}` can now be | 
|  | 9 | + `impl Reader for BufReader<'_> {}`. Lifetimes are still required to be defined | 
|  | 10 | + in structs. | 
|  | 11 | +- [You can now define and use `const` functions.][54835] These are currently | 
|  | 12 | + a strict minimal subset of the [const fn RFC][RFC-911]. Refer to the | 
|  | 13 | + [language reference][const-reference] for what exactly is available. | 
|  | 14 | +- [You can now use tool lints, which allow you to scope lints from external | 
|  | 15 | + tools using attributes.][54870] E.g. `#[allow(clippy::filter_map)]`. | 
|  | 16 | +- [`#[no_mangle]` and `#[export_name]` attributes can now be located anywhere in | 
|  | 17 | + a crate, not just in exported functions.][54451] | 
|  | 18 | +- [You can now use parentheses in pattern matches.][54497] | 
|  | 19 | + | 
|  | 20 | +Compiler | 
|  | 21 | +-------- | 
|  | 22 | +- [Updated musl to 1.1.20][54430] | 
|  | 23 | + | 
|  | 24 | +Libraries | 
|  | 25 | +--------- | 
|  | 26 | +- [You can now convert `num::NonZero*` types to their raw equivalvents using the | 
|  | 27 | + `From` trait.][54240] E.g. `u8` now implements `From<NonZeroU8>`. | 
|  | 28 | +- [You can now convert a `&Option<T>` into `Option<&T>` and `&mut Option<T>` | 
|  | 29 | + into `Option<&mut T>` using the `From` trait.][53218] | 
|  | 30 | +- [You can now multiply (`*`) a `time::Duration` by a `u32`.][52813] | 
|  | 31 | + | 
|  | 32 | + | 
|  | 33 | +Stabilized APIs | 
|  | 34 | +--------------- | 
|  | 35 | +- [`slice::align_to`] | 
|  | 36 | +- [`slice::align_to_mut`] | 
|  | 37 | +- [`slice::chunks_exact`] | 
|  | 38 | +- [`slice::chunks_exact_mut`] | 
|  | 39 | +- [`slice::rchunks`] | 
|  | 40 | +- [`slice::rchunks_mut`] | 
|  | 41 | +- [`slice::rchunks_exact`] | 
|  | 42 | +- [`slice::rchunks_exact_mut`] | 
|  | 43 | +- [`Option::replace`] | 
|  | 44 | + | 
|  | 45 | +Cargo | 
|  | 46 | +----- | 
|  | 47 | +- [Cargo will now download crates in parallel using HTTP/2.][cargo/6005] | 
|  | 48 | +- [You can now rename packages in your Cargo.toml][cargo/6319] We have a guide | 
|  | 49 | + on [how to use the `package` key in your dependencies.][cargo-rename-reference] | 
|  | 50 | + | 
|  | 51 | +[52813]: https://github.com/rust-lang/rust/pull/52813/ | 
|  | 52 | +[53218]: https://github.com/rust-lang/rust/pull/53218/ | 
|  | 53 | +[53555]: https://github.com/rust-lang/rust/issues/53555/ | 
|  | 54 | +[54057]: https://github.com/rust-lang/rust/pull/54057/ | 
|  | 55 | +[54240]: https://github.com/rust-lang/rust/pull/54240/ | 
|  | 56 | +[54430]: https://github.com/rust-lang/rust/pull/54430/ | 
|  | 57 | +[54451]: https://github.com/rust-lang/rust/pull/54451/ | 
|  | 58 | +[54497]: https://github.com/rust-lang/rust/pull/54497/ | 
|  | 59 | +[54778]: https://github.com/rust-lang/rust/pull/54778/ | 
|  | 60 | +[54835]: https://github.com/rust-lang/rust/pull/54835/ | 
|  | 61 | +[54870]: https://github.com/rust-lang/rust/pull/54870/ | 
|  | 62 | +[RFC-911]: https://github.com/rust-lang/rfcs/pull/911 | 
|  | 63 | +[`Option::replace`]: https://doc.rust-lang.org/std/option/enum.Option.html#method.replace | 
|  | 64 | +[`slice::align_to_mut`]: https://doc.rust-lang.org/std/primitive.slice.html#method.align_to_mut | 
|  | 65 | +[`slice::align_to`]: https://doc.rust-lang.org/std/primitive.slice.html#method.align_to | 
|  | 66 | +[`slice::chunks_exact_mut`]: https://doc.rust-lang.org/std/primitive.slice.html#method.chunks_exact_mut | 
|  | 67 | +[`slice::chunks_exact`]: https://doc.rust-lang.org/std/primitive.slice.html#method.chunks_exact | 
|  | 68 | +[`slice::rchunks_exact_mut`]: https://doc.rust-lang.org/std/primitive.slice.html#method.rchunks_mut | 
|  | 69 | +[`slice::rchunks_exact`]: https://doc.rust-lang.org/std/primitive.slice.html#method.rchunks_exact | 
|  | 70 | +[`slice::rchunks_mut`]: https://doc.rust-lang.org/std/primitive.slice.html#method.rchunks_mut | 
|  | 71 | +[`slice::rchunks`]: https://doc.rust-lang.org/std/primitive.slice.html#method.rchunks | 
|  | 72 | +[cargo/6005]: https://github.com/rust-lang/cargo/pull/6005/ | 
|  | 73 | +[cargo/6319]: https://github.com/rust-lang/cargo/pull/6319/ | 
|  | 74 | +[cargo-rename-reference]: https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html#renaming-dependencies-in-cargotoml | 
|  | 75 | +[const-reference]: https://doc.rust-lang.org/reference/items/functions.html#const-functions | 
|  | 76 | + | 
|  | 77 | + | 
| 1 | 78 | Version 1.30.0 (2018-10-25) | 
| 2 | 79 | ========================== | 
| 3 | 80 | 
 | 
|  | 
0 commit comments