Fix an ICE with error types in a vec

Closes #16783
Forbid the Sized bound on unsized types

closes #16800
Modifications to liblibc for raw/custom socket support.
num: implement `Hash` for `Complex` and `Ratio`
complex: use `///...` instead of `/**...*/` for comment
Detect a traits being used as structs in check_expr_with_unifier

Fixes #16750
Fixes #15812
Added cfail test
Changed error to 'use of trait `{}` as a struct constructor'
Fix win64 regression introduced by #15773

Signed-off-by: Peter Atashian <retep998@gmail.com>
Defailbloat fail!(string)
Allow ExprLit expression macros to be used in patterns.
gensym each test re-export module individually

Fixes #16597
Address review comments, add tests
&mut [T] now implements Collection. Fixes #16896
Rename `RawPtr::to_option()` to `RawPtr::as_ref()`

As outlined in

  https://aturon.github.io/style/naming/conversions.html

`to_` functions names should only be used for expensive operations.
Thus `to_option` is better named `as_option`. Also, putting type
names into method names is considered bad style; what the user is
really trying to get is a reference. This `as_ref` is even better.

Also, we are missing a mutable version of this method. So add a
new trait `RawMutPtr` with a corresponding `as_mut` methode.

Finally, there is a bug in the signature of `to_option` which has
been around since lifetime elision: originally the returned reference
had 'static lifetime, but since the elision changes this become
the lifetime of the raw pointer (which does not make sense, since
the pointer lifetime and referent lifetime are unrelated). Fix
the bug to return a reference with a fresh lifetime (which will
be inferred from the calling context).

[breaking-change]
Second approach - using type contents
test: Tweak tcp-accept-stress one last time

The tcp-accept-stress, despite the previous modifications, is still deadlocking
on the osx buildbots. When building/testing/running repeatedly locally, it was
discovered that the test would often fail with TcpStream::connect returning the
error `address not available`.

This test opens up quite a large number of sockets, and it looks like by default
osx isn't the speediest at recycling those sockets for further use.

The test has been modified (and verified) to not deadlock in this error case,
and the test is not just officially ignored on OSX (with no FIXME). I believe
that we'll get good coverage of the relevant code on the linux builders, so this
isn't so much of a loss.

At the same time I turned down the stress parameters to hopefully lighten the
socket load on other platforms.
auto merge of #16844 : mrmonday/rust/liblibc-custom-socket, r=alexcrichton

These are the additions to liblibc required for raw/custom socket support. I've broken this into a separate pull request due to the upcoming I/O overhaul (was originally part of pull #15741).

cc @alexcrichton.
auto merge of #16802 : nick29581/rust/dst-bug-1, r=luqmana

Closes #16783 

r? @nikomatsakis
auto merge of #16871 : retep998/rust/win64-fix, r=alexcrichton

It was in a x86_64 block so the buildbots didn't notice it.
Fixes #16905
auto merge of #16886 : Tobba/rust/defailbloat-string, r=alexcrichton

by not performing formatting at the failure site

This cuts about 673382 bytes from libcore.rlib