Rollup merge of #56516 - frewsxcv:frewsxcv-eq, r=Mark-Simulacrum
Replace usages of `..i + 1` ranges with `..=i`. Before this change we were using old computer code techniques. After this change we use the new and improved computer code techniques.
This commit is contained in:
commit
0e41ef13aa
19 changed files with 36 additions and 36 deletions
|
@ -2795,7 +2795,7 @@ mod tests {
|
||||||
// 0, 1, 2, .., len - 1
|
// 0, 1, 2, .., len - 1
|
||||||
let expected = (0..).take(len).collect::<VecDeque<_>>();
|
let expected = (0..).take(len).collect::<VecDeque<_>>();
|
||||||
for tail_pos in 0..cap {
|
for tail_pos in 0..cap {
|
||||||
for to_remove in 0..len + 1 {
|
for to_remove in 0..=len {
|
||||||
tester.tail = tail_pos;
|
tester.tail = tail_pos;
|
||||||
tester.head = tail_pos;
|
tester.head = tail_pos;
|
||||||
for i in 0..len {
|
for i in 0..len {
|
||||||
|
@ -2821,10 +2821,10 @@ mod tests {
|
||||||
let mut tester: VecDeque<usize> = VecDeque::with_capacity(7);
|
let mut tester: VecDeque<usize> = VecDeque::with_capacity(7);
|
||||||
|
|
||||||
let cap = tester.capacity();
|
let cap = tester.capacity();
|
||||||
for len in 0..cap + 1 {
|
for len in 0..=cap {
|
||||||
for tail in 0..cap + 1 {
|
for tail in 0..=cap {
|
||||||
for drain_start in 0..len + 1 {
|
for drain_start in 0..=len {
|
||||||
for drain_end in drain_start..len + 1 {
|
for drain_end in drain_start..=len {
|
||||||
tester.tail = tail;
|
tester.tail = tail;
|
||||||
tester.head = tail;
|
tester.head = tail;
|
||||||
for i in 0..len {
|
for i in 0..len {
|
||||||
|
@ -2866,10 +2866,10 @@ mod tests {
|
||||||
tester.reserve(63);
|
tester.reserve(63);
|
||||||
let max_cap = tester.capacity();
|
let max_cap = tester.capacity();
|
||||||
|
|
||||||
for len in 0..cap + 1 {
|
for len in 0..=cap {
|
||||||
// 0, 1, 2, .., len - 1
|
// 0, 1, 2, .., len - 1
|
||||||
let expected = (0..).take(len).collect::<VecDeque<_>>();
|
let expected = (0..).take(len).collect::<VecDeque<_>>();
|
||||||
for tail_pos in 0..max_cap + 1 {
|
for tail_pos in 0..=max_cap {
|
||||||
tester.tail = tail_pos;
|
tester.tail = tail_pos;
|
||||||
tester.head = tail_pos;
|
tester.head = tail_pos;
|
||||||
tester.reserve(63);
|
tester.reserve(63);
|
||||||
|
@ -2899,7 +2899,7 @@ mod tests {
|
||||||
// len is the length *before* splitting
|
// len is the length *before* splitting
|
||||||
for len in 0..cap {
|
for len in 0..cap {
|
||||||
// index to split at
|
// index to split at
|
||||||
for at in 0..len + 1 {
|
for at in 0..=len {
|
||||||
// 0, 1, 2, .., at - 1 (may be empty)
|
// 0, 1, 2, .., at - 1 (may be empty)
|
||||||
let expected_self = (0..).take(at).collect::<VecDeque<_>>();
|
let expected_self = (0..).take(at).collect::<VecDeque<_>>();
|
||||||
// at, at + 1, .., len - 1 (may be empty)
|
// at, at + 1, .., len - 1 (may be empty)
|
||||||
|
@ -2927,7 +2927,7 @@ mod tests {
|
||||||
fn test_from_vec() {
|
fn test_from_vec() {
|
||||||
use vec::Vec;
|
use vec::Vec;
|
||||||
for cap in 0..35 {
|
for cap in 0..35 {
|
||||||
for len in 0..cap + 1 {
|
for len in 0..=cap {
|
||||||
let mut vec = Vec::with_capacity(cap);
|
let mut vec = Vec::with_capacity(cap);
|
||||||
vec.extend(0..len);
|
vec.extend(0..len);
|
||||||
|
|
||||||
|
|
|
@ -318,11 +318,11 @@ fn panic_safe() {
|
||||||
const NTEST: usize = 10;
|
const NTEST: usize = 10;
|
||||||
|
|
||||||
// don't use 0 in the data -- we want to catch the zeroed-out case.
|
// don't use 0 in the data -- we want to catch the zeroed-out case.
|
||||||
let data = (1..DATASZ + 1).collect::<Vec<_>>();
|
let data = (1..=DATASZ).collect::<Vec<_>>();
|
||||||
|
|
||||||
// since it's a fuzzy test, run several tries.
|
// since it's a fuzzy test, run several tries.
|
||||||
for _ in 0..NTEST {
|
for _ in 0..NTEST {
|
||||||
for i in 1..DATASZ + 1 {
|
for i in 1..=DATASZ {
|
||||||
DROP_COUNTER.store(0, Ordering::SeqCst);
|
DROP_COUNTER.store(0, Ordering::SeqCst);
|
||||||
|
|
||||||
let mut panic_ords: Vec<_> = data.iter()
|
let mut panic_ords: Vec<_> = data.iter()
|
||||||
|
|
|
@ -302,7 +302,7 @@ fn test_range() {
|
||||||
for i in 0..size {
|
for i in 0..size {
|
||||||
for j in i..size {
|
for j in i..size {
|
||||||
let mut kvs = map.range((Included(&i), Included(&j))).map(|(&k, &v)| (k, v));
|
let mut kvs = map.range((Included(&i), Included(&j))).map(|(&k, &v)| (k, v));
|
||||||
let mut pairs = (i..j + 1).map(|i| (i, i));
|
let mut pairs = (i..=j).map(|i| (i, i));
|
||||||
|
|
||||||
for (kv, pair) in kvs.by_ref().zip(pairs.by_ref()) {
|
for (kv, pair) in kvs.by_ref().zip(pairs.by_ref()) {
|
||||||
assert_eq!(kv, pair);
|
assert_eq!(kv, pair);
|
||||||
|
@ -321,7 +321,7 @@ fn test_range_mut() {
|
||||||
for i in 0..size {
|
for i in 0..size {
|
||||||
for j in i..size {
|
for j in i..size {
|
||||||
let mut kvs = map.range_mut((Included(&i), Included(&j))).map(|(&k, &mut v)| (k, v));
|
let mut kvs = map.range_mut((Included(&i), Included(&j))).map(|(&k, &mut v)| (k, v));
|
||||||
let mut pairs = (i..j + 1).map(|i| (i, i));
|
let mut pairs = (i..=j).map(|i| (i, i));
|
||||||
|
|
||||||
for (kv, pair) in kvs.by_ref().zip(pairs.by_ref()) {
|
for (kv, pair) in kvs.by_ref().zip(pairs.by_ref()) {
|
||||||
assert_eq!(kv, pair);
|
assert_eq!(kv, pair);
|
||||||
|
|
|
@ -1378,7 +1378,7 @@ fn test_bool_from_str() {
|
||||||
fn check_contains_all_substrings(s: &str) {
|
fn check_contains_all_substrings(s: &str) {
|
||||||
assert!(s.contains(""));
|
assert!(s.contains(""));
|
||||||
for i in 0..s.len() {
|
for i in 0..s.len() {
|
||||||
for j in i+1..s.len() + 1 {
|
for j in i+1..=s.len() {
|
||||||
assert!(s.contains(&s[i..j]));
|
assert!(s.contains(&s[i..j]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -861,7 +861,7 @@ fn test_as_slices() {
|
||||||
ring.push_back(i);
|
ring.push_back(i);
|
||||||
|
|
||||||
let (left, right) = ring.as_slices();
|
let (left, right) = ring.as_slices();
|
||||||
let expected: Vec<_> = (0..i + 1).collect();
|
let expected: Vec<_> = (0..=i).collect();
|
||||||
assert_eq!(left, &expected[..]);
|
assert_eq!(left, &expected[..]);
|
||||||
assert_eq!(right, []);
|
assert_eq!(right, []);
|
||||||
}
|
}
|
||||||
|
@ -869,7 +869,7 @@ fn test_as_slices() {
|
||||||
for j in -last..0 {
|
for j in -last..0 {
|
||||||
ring.push_front(j);
|
ring.push_front(j);
|
||||||
let (left, right) = ring.as_slices();
|
let (left, right) = ring.as_slices();
|
||||||
let expected_left: Vec<_> = (-last..j + 1).rev().collect();
|
let expected_left: Vec<_> = (-last..=j).rev().collect();
|
||||||
let expected_right: Vec<_> = (0..first).collect();
|
let expected_right: Vec<_> = (0..first).collect();
|
||||||
assert_eq!(left, &expected_left[..]);
|
assert_eq!(left, &expected_left[..]);
|
||||||
assert_eq!(right, &expected_right[..]);
|
assert_eq!(right, &expected_right[..]);
|
||||||
|
@ -889,7 +889,7 @@ fn test_as_mut_slices() {
|
||||||
ring.push_back(i);
|
ring.push_back(i);
|
||||||
|
|
||||||
let (left, right) = ring.as_mut_slices();
|
let (left, right) = ring.as_mut_slices();
|
||||||
let expected: Vec<_> = (0..i + 1).collect();
|
let expected: Vec<_> = (0..=i).collect();
|
||||||
assert_eq!(left, &expected[..]);
|
assert_eq!(left, &expected[..]);
|
||||||
assert_eq!(right, []);
|
assert_eq!(right, []);
|
||||||
}
|
}
|
||||||
|
@ -897,7 +897,7 @@ fn test_as_mut_slices() {
|
||||||
for j in -last..0 {
|
for j in -last..0 {
|
||||||
ring.push_front(j);
|
ring.push_front(j);
|
||||||
let (left, right) = ring.as_mut_slices();
|
let (left, right) = ring.as_mut_slices();
|
||||||
let expected_left: Vec<_> = (-last..j + 1).rev().collect();
|
let expected_left: Vec<_> = (-last..=j).rev().collect();
|
||||||
let expected_right: Vec<_> = (0..first).collect();
|
let expected_right: Vec<_> = (0..first).collect();
|
||||||
assert_eq!(left, &expected_left[..]);
|
assert_eq!(left, &expected_left[..]);
|
||||||
assert_eq!(right, &expected_right[..]);
|
assert_eq!(right, &expected_right[..]);
|
||||||
|
|
|
@ -100,7 +100,7 @@ impl<'a, 'hir: 'a> HirIdValidator<'a, 'hir> {
|
||||||
|
|
||||||
if max != self.hir_ids_seen.len() - 1 {
|
if max != self.hir_ids_seen.len() - 1 {
|
||||||
// Collect the missing ItemLocalIds
|
// Collect the missing ItemLocalIds
|
||||||
let missing: Vec<_> = (0 .. max as u32 + 1)
|
let missing: Vec<_> = (0 ..= max as u32)
|
||||||
.filter(|&i| !self.hir_ids_seen.contains_key(&ItemLocalId::from_u32(i)))
|
.filter(|&i| !self.hir_ids_seen.contains_key(&ItemLocalId::from_u32(i)))
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
|
|
@ -339,7 +339,7 @@ impl<'tcx> Mir<'tcx> {
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn args_iter(&self) -> impl Iterator<Item = Local> {
|
pub fn args_iter(&self) -> impl Iterator<Item = Local> {
|
||||||
let arg_count = self.arg_count;
|
let arg_count = self.arg_count;
|
||||||
(1..arg_count + 1).map(Local::new)
|
(1..=arg_count).map(Local::new)
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Returns an iterator over all user-defined variables and compiler-generated temporaries (all
|
/// Returns an iterator over all user-defined variables and compiler-generated temporaries (all
|
||||||
|
|
|
@ -571,7 +571,7 @@ impl<S: Semantics> fmt::Display for IeeeFloat<S> {
|
||||||
}
|
}
|
||||||
// Fill with zeros up to precision.
|
// Fill with zeros up to precision.
|
||||||
if !truncate_zero && precision > digits - 1 {
|
if !truncate_zero && precision > digits - 1 {
|
||||||
for _ in 0..precision - digits + 1 {
|
for _ in 0..=precision - digits {
|
||||||
f.write_char('0')?;
|
f.write_char('0')?;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1969,7 +1969,7 @@ impl<S: Semantics> IeeeFloat<S> {
|
||||||
// in a Limb. When this would overflow do we do a single
|
// in a Limb. When this would overflow do we do a single
|
||||||
// bignum multiplication, and then revert again to multiplication
|
// bignum multiplication, and then revert again to multiplication
|
||||||
// in a Limb.
|
// in a Limb.
|
||||||
let mut chars = s[first_sig_digit..last_sig_digit + 1].chars();
|
let mut chars = s[first_sig_digit..=last_sig_digit].chars();
|
||||||
loop {
|
loop {
|
||||||
let mut val = 0;
|
let mut val = 0;
|
||||||
let mut multiplier = 1;
|
let mut multiplier = 1;
|
||||||
|
|
|
@ -549,7 +549,7 @@ impl EmitterWriter {
|
||||||
// 3 |
|
// 3 |
|
||||||
// 4 | }
|
// 4 | }
|
||||||
// |
|
// |
|
||||||
for pos in 0..line_len + 1 {
|
for pos in 0..=line_len {
|
||||||
draw_col_separator(buffer, line_offset + pos + 1, width_offset - 2);
|
draw_col_separator(buffer, line_offset + pos + 1, width_offset - 2);
|
||||||
buffer.putc(line_offset + pos + 1,
|
buffer.putc(line_offset + pos + 1,
|
||||||
width_offset - 2,
|
width_offset - 2,
|
||||||
|
@ -617,7 +617,7 @@ impl EmitterWriter {
|
||||||
let pos = pos + 1;
|
let pos = pos + 1;
|
||||||
|
|
||||||
if pos > 1 && (annotation.has_label() || annotation.takes_space()) {
|
if pos > 1 && (annotation.has_label() || annotation.takes_space()) {
|
||||||
for p in line_offset + 1..line_offset + pos + 1 {
|
for p in line_offset + 1..=line_offset + pos {
|
||||||
buffer.putc(p,
|
buffer.putc(p,
|
||||||
code_offset + annotation.start_col,
|
code_offset + annotation.start_col,
|
||||||
'|',
|
'|',
|
||||||
|
@ -634,7 +634,7 @@ impl EmitterWriter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
AnnotationType::MultilineEnd(depth) => {
|
AnnotationType::MultilineEnd(depth) => {
|
||||||
for p in line_offset..line_offset + pos + 1 {
|
for p in line_offset..=line_offset + pos {
|
||||||
buffer.putc(p,
|
buffer.putc(p,
|
||||||
width_offset + depth - 1,
|
width_offset + depth - 1,
|
||||||
'|',
|
'|',
|
||||||
|
|
|
@ -354,7 +354,7 @@ pub fn finalize_session_directory(sess: &Session, svh: Svh) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// State: "s-{timestamp}-{random-number}-"
|
// State: "s-{timestamp}-{random-number}-"
|
||||||
let mut new_sub_dir_name = String::from(&old_sub_dir_name[.. dash_indices[2] + 1]);
|
let mut new_sub_dir_name = String::from(&old_sub_dir_name[..= dash_indices[2]]);
|
||||||
|
|
||||||
// Append the svh
|
// Append the svh
|
||||||
base_n::push_str(svh.as_u64() as u128, INT_ENCODE_BASE, &mut new_sub_dir_name);
|
base_n::push_str(svh.as_u64() as u128, INT_ENCODE_BASE, &mut new_sub_dir_name);
|
||||||
|
|
|
@ -48,7 +48,7 @@ impl RegionValueElements {
|
||||||
|
|
||||||
let mut basic_blocks = IndexVec::with_capacity(num_points);
|
let mut basic_blocks = IndexVec::with_capacity(num_points);
|
||||||
for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
|
for (bb, bb_data) in mir.basic_blocks().iter_enumerated() {
|
||||||
basic_blocks.extend((0..bb_data.statements.len() + 1).map(|_| bb));
|
basic_blocks.extend((0..=bb_data.statements.len()).map(|_| bb));
|
||||||
}
|
}
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
|
|
|
@ -101,7 +101,7 @@ impl<'a, 'gcx, 'tcx> Builder<'a, 'gcx, 'tcx> {
|
||||||
|
|
||||||
// create binding start block for link them by false edges
|
// create binding start block for link them by false edges
|
||||||
let candidate_count = arms.iter().fold(0, |ac, c| ac + c.patterns.len());
|
let candidate_count = arms.iter().fold(0, |ac, c| ac + c.patterns.len());
|
||||||
let pre_binding_blocks: Vec<_> = (0..candidate_count + 1)
|
let pre_binding_blocks: Vec<_> = (0..=candidate_count)
|
||||||
.map(|_| self.cfg.start_new_block())
|
.map(|_| self.cfg.start_new_block())
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
|
|
@ -3617,7 +3617,7 @@ impl<'a, 'crateloader: 'a> Resolver<'a, 'crateloader> {
|
||||||
let res = self.smart_resolve_path_fragment(
|
let res = self.smart_resolve_path_fragment(
|
||||||
id,
|
id,
|
||||||
None,
|
None,
|
||||||
&path[..qself.position + 1],
|
&path[..=qself.position],
|
||||||
span,
|
span,
|
||||||
PathSource::TraitItem(ns),
|
PathSource::TraitItem(ns),
|
||||||
CrateLint::QPathTrait {
|
CrateLint::QPathTrait {
|
||||||
|
|
|
@ -4798,7 +4798,7 @@ impl<'a> fmt::Display for Source<'a> {
|
||||||
tmp /= 10;
|
tmp /= 10;
|
||||||
}
|
}
|
||||||
write!(fmt, "<pre class=\"line-numbers\">")?;
|
write!(fmt, "<pre class=\"line-numbers\">")?;
|
||||||
for i in 1..lines + 1 {
|
for i in 1..=lines {
|
||||||
write!(fmt, "<span id=\"{0}\">{0:1$}</span>\n", i, cols)?;
|
write!(fmt, "<span id=\"{0}\">{0:1$}</span>\n", i, cols)?;
|
||||||
}
|
}
|
||||||
write!(fmt, "</pre>")?;
|
write!(fmt, "</pre>")?;
|
||||||
|
|
|
@ -3610,7 +3610,7 @@ mod test_map {
|
||||||
for i in 1..1001 {
|
for i in 1..1001 {
|
||||||
assert!(m.insert(i, i).is_none());
|
assert!(m.insert(i, i).is_none());
|
||||||
|
|
||||||
for j in 1..i + 1 {
|
for j in 1..=i {
|
||||||
let r = m.get(&j);
|
let r = m.get(&j);
|
||||||
assert_eq!(r, Some(&j));
|
assert_eq!(r, Some(&j));
|
||||||
}
|
}
|
||||||
|
@ -3629,7 +3629,7 @@ mod test_map {
|
||||||
for i in 1..1001 {
|
for i in 1..1001 {
|
||||||
assert!(m.remove(&i).is_some());
|
assert!(m.remove(&i).is_some());
|
||||||
|
|
||||||
for j in 1..i + 1 {
|
for j in 1..=i {
|
||||||
assert!(!m.contains_key(&j));
|
assert!(!m.contains_key(&j));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -918,7 +918,7 @@ impl<W: Write> Write for LineWriter<W> {
|
||||||
// some data then we *must* report that we wrote that data, so future
|
// some data then we *must* report that we wrote that data, so future
|
||||||
// errors are ignored. We set our internal `need_flush` flag, though, in
|
// errors are ignored. We set our internal `need_flush` flag, though, in
|
||||||
// case flushing fails and we need to try it first next time.
|
// case flushing fails and we need to try it first next time.
|
||||||
let n = self.inner.write(&buf[..i + 1])?;
|
let n = self.inner.write(&buf[..=i])?;
|
||||||
self.need_flush = true;
|
self.need_flush = true;
|
||||||
if self.flush().is_err() || n != i + 1 {
|
if self.flush().is_err() || n != i + 1 {
|
||||||
return Ok(n)
|
return Ok(n)
|
||||||
|
|
|
@ -1261,7 +1261,7 @@ fn read_until<R: BufRead + ?Sized>(r: &mut R, delim: u8, buf: &mut Vec<u8>)
|
||||||
};
|
};
|
||||||
match memchr::memchr(delim, available) {
|
match memchr::memchr(delim, available) {
|
||||||
Some(i) => {
|
Some(i) => {
|
||||||
buf.extend_from_slice(&available[..i + 1]);
|
buf.extend_from_slice(&available[..=i]);
|
||||||
(true, i + 1)
|
(true, i + 1)
|
||||||
}
|
}
|
||||||
None => {
|
None => {
|
||||||
|
|
|
@ -487,7 +487,7 @@ fn make_command_line(prog: &OsStr, args: &[OsString]) -> io::Result<Vec<u16>> {
|
||||||
} else {
|
} else {
|
||||||
if x == '"' as u16 {
|
if x == '"' as u16 {
|
||||||
// Add n+1 backslashes to total 2n+1 before internal '"'.
|
// Add n+1 backslashes to total 2n+1 before internal '"'.
|
||||||
cmd.extend((0..(backslashes + 1)).map(|_| '\\' as u16));
|
cmd.extend((0..=backslashes).map(|_| '\\' as u16));
|
||||||
}
|
}
|
||||||
backslashes = 0;
|
backslashes = 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,7 @@ pub fn lev_distance(a: &str, b: &str) -> usize {
|
||||||
return a.chars().count();
|
return a.chars().count();
|
||||||
}
|
}
|
||||||
|
|
||||||
let mut dcol: Vec<_> = (0..b.len() + 1).collect();
|
let mut dcol: Vec<_> = (0..=b.len()).collect();
|
||||||
let mut t_last = 0;
|
let mut t_last = 0;
|
||||||
|
|
||||||
for (i, sc) in a.chars().enumerate() {
|
for (i, sc) in a.chars().enumerate() {
|
||||||
|
|
Loading…
Reference in a new issue