Fix an ICE with error types in a vec

Closes #16783
Modifications to liblibc for raw/custom socket support.
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.
&mut [T] now implements Collection. Fixes #16896
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
auto merge of #16891 : eddyb/rust/patlit-from-expr-macros, r=kballard

Enables any macros using `MacExpr` to be treated as patterns when
they produce a literal in the form `ExprLit` (e.g. `stringify!` or `line!`).

Fixes #16876.
auto merge of #16867 : wickerwaka/rust/ice-16750, r=alexcrichton

Not sure if this is addressing the root cause or just patching up a symptom. Also not sure if I should be adding a diagnostic code for this.

Fixes #16750
Fixes #15812
auto merge of #16897 : japaric/rust/mut-slice-collection, r=alexcrichton