Fix soundness hole in struct with expressions.

Fixes #18567. Struct{x:foo, .. with_expr} did not walk with_expr, which allowed
using moved variables in some cases.  The CFG for structs also built up with
with_expr happening before the fields, which is now reversed. (Fields are now
before the with_expr in the CFG)
Implement Index/IndexMut for [T]

Closes #16529
Make EnumSet not silently corrupt data.

Assert at run time instead. Fixes #13756.

I’d rather have this be detected at compile-time, but I don’t know how to do that.
EnumSet assertion: better error message.
Add example impl in CLike docs. Fix 13752.
libs: add Deref, DerefMut impls for references, fixing a bug in compiler in the process that was blocking this.

Fixes #18621.
auto merge of #18672 : brandonson/rust/functional-update-walk, r=nikomatsakis

Fixes #18567. `Struct{x:foo, .. with_expr}` did not walk `with_expr`, which allowed
using moved variables in some cases.  The CFG for structs also built up with
`with_expr` happening before the fields, which is now reversed. (Fields are now
before the `with_expr` in the CFG)
auto merge of #18698 : japaric/rust/index, r=alexcrichton

Closes #16529

r? @aturon
auto merge of #18714 : nikomatsakis/rust/issue-18621-deref-for-refs, r=aturon

libs: add Deref, DerefMut impls for references, fixing a bug in compiler in the process that was blocking this.

r? @aturon
auto merge of #18721 : SimonSapin/rust/safer-enumset, r=alexcrichton

Assert at run time instead. Fixes #13756.

I’d rather have this be detected at compile-time, but I don’t know how to do that.