There is a weak convention in the ecosystem that `IterFoos` is an iterator yielding items of type `Foo` (e.g. `bitflags` `IterNames`, `hashbrown` `IterBuckets`), while `FooIter` is an iterator over `Foo` from an `.iter()` or `.into_iter()` method (e.g. `memchr` `OneIter`, `regex` `SetMatchesIter`). Rename `IterRange`, `IterRangeInclusive`, and `IterRangeFrom` to `RangeIter`, `RangeInclusiveIter`, and `RangeInclusiveIter` to match this. Tracking issue: RUST-125687 (`new_range_api`)
24 lines
700 B
Rust
24 lines
700 B
Rust
//@ check-pass
|
|
|
|
#![feature(new_range_api)]
|
|
#![feature(new_range)]
|
|
|
|
fn main() {
|
|
// Unchanged
|
|
let a: core::range::RangeFull = ..;
|
|
let b: core::range::RangeTo<u8> = ..2;
|
|
|
|
let _: core::ops::RangeFull = a;
|
|
let _: core::ops::RangeTo<u8> = b;
|
|
|
|
// Changed
|
|
let a: core::range::RangeFrom<u8> = 1..;
|
|
let b: core::range::Range<u8> = 2..3;
|
|
let c: core::range::RangeInclusive<u8> = 4..=5;
|
|
let d: core::range::RangeToInclusive<u8> = ..=3;
|
|
|
|
let _: core::range::RangeFromIter<u8> = a.into_iter();
|
|
let _: core::range::RangeIter<u8> = b.into_iter();
|
|
let _: core::range::RangeInclusiveIter<u8> = c.into_iter();
|
|
// RangeToInclusive has no Iterator implementation
|
|
}
|