Potential fix for Win32 build

It seems in one of rebases I’ve resolved conflicts wrong and left one redundant line, it is absent in current master and it might cause compilation failure by copying file into itself.
Register new snapshots
auto merge of #14715 : vhbit/rust/ios-pr2, r=alexcrichton
auto merge of #14900 : alexcrichton/rust/snapshots, r=huonw

Closes #14898
Closes #14918
Fix rustdoc's formatting of lifetimes

rustdoc was previously formatting lifetimes with two apostrophes, presumably
as a result of #14797.
auto merge of #14906 : P1start/rust/rustdoc-lifetimes, r=huonw

rustdoc was previously formatting lifetimes with two apostrophes, presumably as a result of #14797.
auto merge of #14932 : Sawyer47/rust/json-smallfix, r=huonw
auto merge of #14882 : pcwalton/rust/drop-underscore, r=nikomatsakis

This code didn't do anything, but was a vestige of the old semantics for
`let _ = ...`.

Closes #10488. (As near as I can tell anyhow.)

r? @nikomatsakis
Add examples of how to read from a channel with a timeout, refs #13862
auto merge of #14877 : Seldaek/rust/commdocs, r=alexcrichton

Finally what I promised to do in #13862 /cc @alexcrichton
std: Support consuming a Process without waiting

Forking off a child which survives the parent is often a useful task, and is
currently not possible because the Process type will invoke `wait()` in its
destructor in order to prevent leaking resources. This function adds a new safe
method, `forget`, which can be used to consume an instance of `Process` which
will then not call `wait` in the destructor.

This new method is clearly documented as a leak of resources, but it must be
forcibly opted in to.

Closes #14467
std: Improve pipe() functionality

* os::pipe() now returns IoResult<os::Pipe>
* os::pipe() is now unsafe because it does not arrange for deallocation of file
  descriptors
* os::Pipe fields are renamed from input to reader and out to write.
* PipeStream::pair() has been added. This is a safe method to get a pair of
  pipes.
* Dealing with pipes in native process bindings have been improved to be more
  robust in the face of failure and intermittent errors. This converts a few
  fail!() situations to Err situations.

Closes #9458
cc #13538
Closes #14724
[breaking-change]
auto merge of #14551 : alexcrichton/rust/issue-14467, r=kballard

Forking off a child which survives the parent is often a useful task, and is
currently not possible because the Process type will invoke `wait()` in its
destructor in order to prevent leaking resources. This function adds a new safe
method, `daemonize`, which can be used to consume an instance of `Process` which
will then not call `wait` in the destructor.

This new method is clearly documented as a leak of resources, but it must be
forcibly opted in to.

Closes #14467
auto merge of #14781 : alexcrichton/rust/issue-14724, r=brson

* os::pipe() now returns `IoResult<os::Pipe>`
* os::pipe() is now unsafe because it does not arrange for deallocation of file
  descriptors
* PipeStream::pair() has been added. This is a safe method to get a pair of
  pipes.
* Dealing with pipes in native process bindings have been improved to be more
  robust in the face of failure and intermittent errors. This converts a few
  fail!() situations to Err situations.

cc #13538
Closes #14724
[breaking-change]
Remove comments that no longer apply after the removal of `const`
Remove a pointless check for intersection with RESTR_MUTATE

Now that all loans restrict mutation, there's no point in checking for
intersection with RESTR_MUTATE.
Remove an unused closure parameter

Remove the unused &Restriction parameter of each_in_scope_restriction's
op parameter.
Make a new compatible_borrow_kinds helper function

Move the `incompatible` helper function from analyze_restrictions_on_use
to the file scope and invert its meaning to account for future uses.
Remove the last actual usage of RestrictionSet

Switch to checking BorrowKind values of loans instead of their
RestrictionSet values. This was the last code that made a decision
based on a RestrictionSet.
Remove an unused bkcerr_code constructor parameter

The RestrictionSet parameter of the err_borrowed_pointer_too_short
constructor isn't  actually used, so it can be removed.