rust/library/std
bors cebd2dda1d Auto merge of #90352 - camsteffen:for-loop-desugar, r=oli-obk
Simplify `for` loop desugar

Basically two intermediate bindings are inlined. I could have left one intermediate binding in place as this would simplify some diagnostic logic, but I think the difference in that regard would be negligible, so it is better to have a minimal HIR.

For checking that the pattern is irrefutable, I added a special case when the `match` is found to be non-exhaustive.

The reordering of the arms is purely stylistic. I don't *think* there are any perf implications.

```diff
  match IntoIterator::into_iter($head) {
      mut iter => {
          $label: loop {
-             let mut __next;
              match Iterator::next(&mut iter) {
-                 Some(val) => __next = val,
                  None => break,
+                 Some($pat) => $block,
              }
-             let $pat = __next;
-             $block
          }
      }
  }
```
2021-11-21 21:20:20 +00:00
..
benches mv std libs to library/ 2020-07-27 19:51:13 -05:00
primitive_docs Add primitive documentation to libcore 2021-09-12 02:23:08 +00:00
src Auto merge of #90352 - camsteffen:for-loop-desugar, r=oli-obk 2021-11-21 21:20:20 +00:00
tests Update aarch64 runtime feature detection tests 2021-08-03 12:07:56 +00:00
build.rs std: Get the standard library compiling for wasm64 2021-11-10 08:35:42 -08:00
Cargo.toml Update stdarch/dlmalloc 2021-11-10 08:35:43 -08:00