about summary refs log tree commit diff
path: root/src/test/incremental/thinlto
diff options
context:
space:
mode:
authorManish Goregaokar <manishsmail@gmail.com>2018-02-07 08:30:53 -0800
committerGitHub <noreply@github.com>2018-02-07 08:30:53 -0800
commitda6dcbc21ebfa62c58352c9129dc1e1b99d9b71f (patch)
treebd0c7b88eca61cc2e3553c2d4479f96c1496e3b2 /src/test/incremental/thinlto
parent0ba871254e97a72eb5ab43f26b42a943ab5f330d (diff)
parent6caec2c0494a173f696e5a63583ff35d1bd106aa (diff)
downloadrust-da6dcbc21ebfa62c58352c9129dc1e1b99d9b71f.tar.gz
rust-da6dcbc21ebfa62c58352c9129dc1e1b99d9b71f.zip
Rollup merge of #47944 - oberien:unboundediterator-trustedlen, r=bluss
Implement TrustedLen for Take<Repeat> and Take<RangeFrom>

This will allow optimization of simple `repeat(x).take(n).collect()` iterators, which are currently not vectorized and have capacity checks.

This will only support a few aggregates on `Repeat` and `RangeFrom`, which might be enough for simple cases, but doesn't optimize more complex ones. Namely, Cycle, StepBy, Filter, FilterMap, Peekable, SkipWhile, Skip, FlatMap, Fuse and Inspect are not marked `TrustedLen` when the inner iterator is infinite.

Previous discussion can be found in #47082

r? @alexcrichton
Diffstat (limited to 'src/test/incremental/thinlto')
0 files changed, 0 insertions, 0 deletions