about summary refs log tree commit diff
path: root/src/test/rustdoc-ui/coverage/json.rs
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2020-04-09 05:29:43 +0200
committerGitHub <noreply@github.com>2020-04-09 05:29:43 +0200
commitecc4e2a647533ddabb7a1b69f6ab1385c3f4003c (patch)
treede8e9f80a0c55f6f9e546ede1d3646fd0997c3bd /src/test/rustdoc-ui/coverage/json.rs
parentcefee7bd9a7e188e406cac0190cf4a19fcca27ff (diff)
parentce8abc63a7e1fcac4b69574e00a70352e583cec8 (diff)
downloadrust-ecc4e2a647533ddabb7a1b69f6ab1385c3f4003c.tar.gz
rust-ecc4e2a647533ddabb7a1b69f6ab1385c3f4003c.zip
Rollup merge of #70896 - cuviper:optional-chain, r=scottmcm
Implement Chain with Option fuses

The iterators are now "fused" with `Option` so we don't need separate state to track which part is already exhausted, and we may also get niche layout for `None`. We don't use the real `Fuse` adapter because its specialization for `FusedIterator` unconditionally descends into the iterator, and that could be expensive to keep revisiting stuff like nested chains. It also hurts compiler performance to add more iterator layers to `Chain`.

This change was inspired by the [proposal](https://internals.rust-lang.org/t/proposal-implement-iter-chain-using-fuse/12006) on the internals forum. This is an alternate to #70332, directly employing some of the same `Fuse` optimizations as #70366 and #70750.

r? @scottmcm
Diffstat (limited to 'src/test/rustdoc-ui/coverage/json.rs')
0 files changed, 0 insertions, 0 deletions