@@ -4,34 +4,34 @@ Version 1.30.0 (2018-10-25)
44Language
55-------- 
66-  [ Procedural macros are now available.] [ 52081 ]  These kinds of macros allow for
7-   more powerful code generation, there  is a [ new chapter available] [ proc-macros ] 
8-   in Rust Programming Language book that goes further in depth.
7+   more powerful code generation. There  is a [ new chapter available] [ proc-macros ] 
8+   in the  Rust Programming Language book that goes further in depth.
99-  [ You can now use keywords as identifiers using the raw identifiers
10-   syntax (` r# ` ). ] [ 53236 ]  e.g. ` let r#for = true; ` 
10+   syntax (` r# ` ), ] [ 53236 ]  e.g. ` let r#for = true; ` 
1111-  [ Using anonymous parameters in traits is now deprecated with a warning and
1212  will be a hard error in the 2018 edition.] [ 53272 ] 
1313-  [ You can now use ` crate `  in paths.] [ 54404 ]  This allows you to refer to the
14-   crate root in the path.  e.g. ` use crate::foo; `  refers to ` foo `  in ` src/lib.rs ` .
15- -  [ Using a external crate now  no longer requires being prefixed with ` :: ` .] [ 54404 ] 
16-   e.g. previously  using a external crate in a module without a use statement
17-   required ` let json = ::serde_json::from_str(foo); `  can now be written
14+   crate root in the path,  e.g. ` use crate::foo; `  refers to ` foo `  in ` src/lib.rs ` .
15+ -  [ Using a external crate no longer requires being prefixed with ` :: ` .] [ 54404 ] 
16+   Previously,  using a external crate in a module without a use statement
17+   required ` let json = ::serde_json::from_str(foo); `  but  can now be written
1818  as ` let json = serde_json::from_str(foo); ` .
1919-  [ You can now apply the ` #[used] `  attribute to static items to prevent the
20-   compiler from optimising them away even if they appear to be unused. ] [ 51363 ] 
20+   compiler from optimising them away,  even if they appear to be unused, ] [ 51363 ] 
2121  e.g. ` #[used] static FOO: u32 = 1; ` 
2222-  [ You can now import and reexport macros from other crates with the ` use ` 
2323  syntax.] [ 50911 ]  Macros exported with ` #[macro_export] `  are now placed into
2424  the root module of the crate. If your macro relies on calling other local
25-   macros it is recommended to export with the
26-   ` #[macro_export(local_inner_macros)] `  attribute so that  users won't have to
27-   import  those macros.
28- -  [ ` mod.rs `  files are now optional.] [ 54146 ]  Previously if you had a ` foo `  module
25+   macros,  it is recommended to export with the
26+   ` #[macro_export(local_inner_macros)] `  attribute so users won't have to import 
27+   those macros.
28+ -  [ ` mod.rs `  files are now optional.] [ 54146 ]  Previously,  if you had a ` foo `  module
2929  with a ` bar `  submodule, you would have ` src/foo/mod.rs `  and ` src/foo/bar.rs ` .
3030  Now you can have ` src/foo.rs `  and ` src/foo/bar.rs `  to achieve the same effect.
3131-  [ You can now catch visibility keywords (e.g. ` pub ` , ` pub(crate) ` ) in macros
3232  using the ` vis `  specifier.] [ 53370 ] 
33- -  [ Non-macro attributes now allow all forms of literals not just
34-   strings.] [ 53044 ]  e.g.  Previously you would write ` #[attr("true")] `  you can now
33+ -  [ Non-macro attributes now allow all forms of literals,  not just
34+   strings.] [ 53044 ]  Previously,  you would write ` #[attr("true")] ` , and  you can now
3535  write ` #[attr(true)] ` .
3636-  [ You can now specify a function to handle a panic in the Rust runtime with the
3737  ` #[panic_handler] `  attribute.] [ 51366 ] 
@@ -54,9 +54,9 @@ Stabilized APIs
5454-  [ ` Ipv6Addr::UNSPECIFIED ` ] 
5555-  [ ` Iterator::find_map ` ] 
5656
57-   The following methods are a  replacement methods for ` trim_left ` , ` trim_right ` ,
58-   ` trim_left_matches ` , and ` trim_right_matches ` . Which  will be deprecated
59-   in 1.33.0. 
57+   The following methods are replacement methods for ` trim_left ` , ` trim_right ` ,
58+   ` trim_left_matches ` , and ` trim_right_matches ` , which  will be deprecated
59+   in 1.33.0: 
6060-  [ ` str::trim_end_matches ` ] 
6161-  [ ` str::trim_end ` ] 
6262-  [ ` str::trim_start_matches ` ] 
7676---- 
7777-  [ ` rustdoc `  allows you to specify what edition to treat your code as with the
7878  ` --edition `  option.] [ 54057 ] 
79- -  [ ` rustdoc `  now has the ` --color `  (Specify  whether to output color) and
80-   ` --error-format `  (Specify  error format e.g. ` json ` ) options.] [ 53003 ] 
79+ -  [ ` rustdoc `  now has the ` --color `  (specify  whether to output color) and
80+   ` --error-format `  (specify  error format,  e.g. ` json ` ) options.] [ 53003 ] 
8181-  [ We now distribute a ` rust-gdbgui `  script that invokes ` gdbgui `  with Rust
8282  debug symbols.] [ 53774 ] 
8383-  [ Attributes from Rust tools such as ` rustfmt `  or ` clippy `  are now
84-   available. ] [ 53459 ]  e.g. ` #[rustfmt::skip] `  will skip formatting the next item.
84+   available, ] [ 53459 ]  e.g. ` #[rustfmt::skip] `  will skip formatting the next item.
8585
8686[ 50911 ] : https://github.com/rust-lang/rust/pull/50911/ 
8787[ 51363 ] : https://github.com/rust-lang/rust/pull/51363/ 
@@ -153,7 +153,7 @@ Compiler
153153
154154Libraries
155155--------- 
156- -  [ ` Once::call_once `  now  no longer requires ` Once `  to be ` 'static ` .] [ 52239 ] 
156+ -  [ ` Once::call_once `  no longer requires ` Once `  to be ` 'static ` .] [ 52239 ] 
157157-  [ ` BuildHasherDefault `  now implements ` PartialEq `  and ` Eq ` .] [ 52402 ] 
158158-  [ ` Box<CStr> ` , ` Box<OsStr> ` , and ` Box<Path> `  now implement ` Clone ` .] [ 51912 ] 
159159-  [ Implemented ` PartialEq<&str> `  for ` OsString `  and ` PartialEq<OsString> ` 
@@ -169,10 +169,10 @@ Stabilized APIs
169169
170170Cargo
171171----- 
172- -  [ Cargo can silently fix some bad lockfiles  ] [ cargo/5831 ]  You can use
173-   ` --locked `  to disable this behaviour .
172+ -  [ Cargo can silently fix some bad lockfiles. ] [ cargo/5831 ]  You can use
173+   ` --locked `  to disable this behavior .
174174-  [ ` cargo-install `  will now allow you to cross compile an install
175-   using ` --target ` ] [ cargo/5614 ] 
175+   using ` --target ` . ] [ cargo/5614 ] 
176176-  [ Added the ` cargo-fix `  subcommand to automatically move project code from
177177  2015 edition to 2018.] [ cargo/5723 ] 
178178-  [ ` cargo doc `  can now optionally document private types using the
@@ -184,15 +184,15 @@ Misc
184184  the specified level to that level.] [ 52354 ]  For example ` --cap-lints warn ` 
185185  will demote ` deny `  and ` forbid `  lints to ` warn ` .
186186-  [ ` rustc `  and ` rustdoc `  will now have the exit code of ` 1 `  if compilation
187-   fails,  and ` 101 `  if there is a panic.] [ 52197 ] 
187+   fails and ` 101 `  if there is a panic.] [ 52197 ] 
188188-  [ A preview of clippy has been made available through rustup.] [ 51122 ] 
189-   You can install the preview with ` rustup component add clippy-preview ` 
189+   You can install the preview with ` rustup component add clippy-preview ` . 
190190
191191Compatibility Notes
192192------------------- 
193193-  [ ` str::{slice_unchecked, slice_unchecked_mut} `  are now deprecated.] [ 51807 ] 
194194  Use ` str::get_unchecked(begin..end) `  instead.
195- -  [ ` std::env::home_dir `  is now deprecated for its unintuitive behaviour .] [ 51656 ] 
195+ -  [ ` std::env::home_dir `  is now deprecated for its unintuitive behavior .] [ 51656 ] 
196196  Consider using the ` home_dir `  function from
197197  https://crates.io/crates/dirs  instead.
198198-  [ ` rustc `  will no longer silently ignore invalid data in target spec.] [ 52330 ] 
@@ -432,7 +432,7 @@ Language
432432  be used as an identifier.
433433-  [ The dyn syntax is now available.] [ 49968 ]  This syntax is equivalent to the
434434  bare ` Trait `  syntax, and should make it clearer when being used in tandem with
435-   ` impl Trait ` . Since  it is equivalent to the following syntax:
435+   ` impl Trait `  because  it is equivalent to the following syntax:
436436  ` &Trait == &dyn Trait ` , ` &mut Trait == &mut dyn Trait ` , and
437437  ` Box<Trait> == Box<dyn Trait> ` .
438438-  [ Attributes on generic parameters such as types and lifetimes are
@@ -495,10 +495,10 @@ Cargo
495495  a different directory than ` target `  for placing compilation artifacts.
496496-  [ Cargo will be adding automatic target inference for binaries, benchmarks,
497497  examples, and tests in the Rust 2018 edition.] [ cargo/5335 ]  If your project specifies
498-   specific targets e.g. using ` [[bin]] `  and have other binaries in locations
498+   specific targets,  e.g. using ` [[bin]] ` ,  and have other binaries in locations
499499  where cargo would infer a binary, Cargo will produce a warning. You can
500-   disable this feature ahead of time by setting any of the following ` autobins ` , 
501-   ` autobenches ` , ` autoexamples ` , ` autotests `  to false .
500+   disable this feature ahead of time by setting any of the following to false: 
501+   ` autobins ` ,  ` autobenches ` , ` autoexamples ` , ` autotests ` .
502502-  [ Cargo will now cache compiler information.] [ cargo/5359 ]  This can be disabled by
503503  setting ` CARGO_CACHE_RUSTC_INFO=0 `  in your environment.
504504
@@ -514,8 +514,8 @@ Compatibility Notes
514514  work.] [ 49896 ]  e.g. ` ::core::prelude::v1::StrExt::is_empty("") `  will not
515515  compile, ` "".is_empty() `  will still compile.
516516-  [ ` Debug `  output on ` atomic::{AtomicBool, AtomicIsize, AtomicPtr, AtomicUsize} ` 
517-   will only print the inner type.] [ 48553 ]  e .g.
518-   ` print!("{:?}", AtomicBool::new(true)) `  will print ` true ` 
517+   will only print the inner type.] [ 48553 ]  E .g.
518+   ` print!("{:?}", AtomicBool::new(true)) `  will print ` true ` , 
519519  not ` AtomicBool(true) ` .
520520-  [ The maximum number for ` repr(align(N)) `  is now 2²⁹.] [ 50378 ]  Previously you
521521  could enter higher numbers but they were not supported by LLVM. Up to 512MB
@@ -578,7 +578,7 @@ Version 1.26.2 (2018-06-05)
578578Compatibility Notes
579579------------------- 
580580
581- -  [ The borrow checker was fixed to avoid unsoundness when using match ergonomics] [ 51117 ] 
581+ -  [ The borrow checker was fixed to avoid unsoundness when using match ergonomics. ] [ 51117 ] 
582582
583583[ 51117 ] : https://github.com/rust-lang/rust/issues/51117 
584584
@@ -589,18 +589,18 @@ Version 1.26.1 (2018-05-29)
589589Tools
590590----- 
591591
592- -  [ RLS now works on Windows] [ 50646 ] 
593- -  [ Rustfmt stopped badly formatting text in some cases] [ rustfmt/2695 ] 
592+ -  [ RLS now works on Windows. ] [ 50646 ] 
593+ -  [ Rustfmt stopped badly formatting text in some cases. ] [ rustfmt/2695 ] 
594594
595595
596596Compatibility Notes
597597-------- 
598598
599599-  [ ` fn main() -> impl Trait `  no longer works for non-Termination
600-   trait] [ 50656 ] 
600+   trait. ] [ 50656 ] 
601601  This reverts an accidental stabilization.
602- -  [ ` NaN > NaN `  no longer returns true in const-fn contexts] [ 50812 ] 
603- -  [ Prohibit using turbofish for ` impl Trait `  in method arguments] [ 50950 ] 
602+ -  [ ` NaN > NaN `  no longer returns true in const-fn contexts. ] [ 50812 ] 
603+ -  [ Prohibit using turbofish for ` impl Trait `  in method arguments. ] [ 50950 ] 
604604
605605[ 50646 ] : https://github.com/rust-lang/rust/issues/50646 
606606[ 50656 ] : https://github.com/rust-lang/rust/pull/50656 
@@ -616,18 +616,18 @@ Language
616616-  [ Closures now implement ` Copy `  and/or ` Clone `  if all captured variables
617617  implement either or both traits.] [ 49299 ] 
618618-  [ The inclusive range syntax e.g. ` for x in 0..=10 `  is now stable.] [ 47813 ] 
619- -  [ The ` '_ `  lifetime is now stable. The underscore lifetime can be used anywhere where  a
619+ -  [ The ` '_ `  lifetime is now stable. The underscore lifetime can be used anywhere a
620620  lifetime can be elided.] [ 49458 ] 
621621-  [ ` impl Trait `  is now stable allowing you to have abstract types in returns
622-    or in function parameters.] [ 49255 ]  e .g. ` fn foo() -> impl Iterator<Item=u8> `  or
622+    or in function parameters.] [ 49255 ]  E .g. ` fn foo() -> impl Iterator<Item=u8> `  or
623623  ` fn open(path: impl AsRef<Path>) ` .
624624-  [ Pattern matching will now automatically apply dereferences.] [ 49394 ] 
625625-  [ 128-bit integers in the form of ` u128 `  and ` i128 `  are now stable.] [ 49101 ] 
626626-  [ ` main `  can now return ` Result<(), E: Debug> ` ] [ 49162 ]  in addition to ` () ` .
627627-  [ A lot of operations are now available in a const context.] [ 46882 ]  E.g. You
628628  can now index into constant arrays, reference and dereference into constants,
629-   and use Tuple  struct constructors.
630- -  [ Fixed entry slice patterns are now stable.] [ 48516 ]  e .g.
629+   and use tuple  struct constructors.
630+ -  [ Fixed entry slice patterns are now stable.] [ 48516 ]  E .g.
631631  ``` rust 
632632  let  points  =  [1 , 2 , 3 , 4 ];
633633  match  points  {
@@ -1052,7 +1052,7 @@ Language
10521052Compiler
10531053-------- 
10541054-  [ Enabled ` TrapUnreachable `  in LLVM which should mitigate the impact of
1055-   undefined behaviour .] [ 45920 ] 
1055+   undefined behavior .] [ 45920 ] 
10561056-  [ rustc now suggests renaming import if names clash.] [ 45660 ] 
10571057-  [ Display errors/warnings correctly when there are zero-width or
10581058  wide characters.] [ 45711 ] 
0 commit comments