Remove MatcherPos::match_lo
.
It's redundant w.r.t. other fields.
This commit is contained in:
parent
21699c41af
commit
2e423c7fd0
@ -134,10 +134,6 @@ struct MatcherPos<'tt> {
|
|||||||
/// The number of sequences this mp is within.
|
/// The number of sequences this mp is within.
|
||||||
seq_depth: usize,
|
seq_depth: usize,
|
||||||
|
|
||||||
/// The position in `matches` of the first metavar in this (sub)matcher. Zero if there are
|
|
||||||
/// no metavars.
|
|
||||||
match_lo: usize,
|
|
||||||
|
|
||||||
/// The position in `matches` of the next metavar to be matched against the source token
|
/// The position in `matches` of the next metavar to be matched against the source token
|
||||||
/// stream. Should not be used if there are no metavars.
|
/// stream. Should not be used if there are no metavars.
|
||||||
match_cur: usize,
|
match_cur: usize,
|
||||||
@ -152,7 +148,7 @@ struct MatcherPos<'tt> {
|
|||||||
|
|
||||||
// This type is used a lot. Make sure it doesn't unintentionally get bigger.
|
// This type is used a lot. Make sure it doesn't unintentionally get bigger.
|
||||||
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
#[cfg(all(target_arch = "x86_64", target_pointer_width = "64"))]
|
||||||
rustc_data_structures::static_assert_size!(MatcherPos<'_>, 104);
|
rustc_data_structures::static_assert_size!(MatcherPos<'_>, 96);
|
||||||
|
|
||||||
impl<'tt> MatcherPos<'tt> {
|
impl<'tt> MatcherPos<'tt> {
|
||||||
fn top_level(matcher: &'tt [TokenTree], empty_matches: Lrc<NamedMatchVec>) -> Self {
|
fn top_level(matcher: &'tt [TokenTree], empty_matches: Lrc<NamedMatchVec>) -> Self {
|
||||||
@ -161,7 +157,6 @@ impl<'tt> MatcherPos<'tt> {
|
|||||||
idx: 0,
|
idx: 0,
|
||||||
matches: empty_matches,
|
matches: empty_matches,
|
||||||
seq_depth: 0,
|
seq_depth: 0,
|
||||||
match_lo: 0,
|
|
||||||
match_cur: 0,
|
match_cur: 0,
|
||||||
stack: smallvec![],
|
stack: smallvec![],
|
||||||
sequence: None,
|
sequence: None,
|
||||||
@ -178,14 +173,13 @@ impl<'tt> MatcherPos<'tt> {
|
|||||||
idx: 0,
|
idx: 0,
|
||||||
matches: parent.matches.clone(),
|
matches: parent.matches.clone(),
|
||||||
seq_depth: parent.seq_depth,
|
seq_depth: parent.seq_depth,
|
||||||
match_lo: parent.match_cur,
|
|
||||||
match_cur: parent.match_cur,
|
match_cur: parent.match_cur,
|
||||||
sequence: Some(MatcherPosSequence { parent, seq }),
|
sequence: Some(MatcherPosSequence { parent, seq }),
|
||||||
stack: smallvec![],
|
stack: smallvec![],
|
||||||
};
|
};
|
||||||
// Start with an empty vec for each metavar within the sequence. Note that `mp.seq_depth`
|
// Start with an empty vec for each metavar within the sequence. Note that `mp.seq_depth`
|
||||||
// must have the parent's depth at this point for these `push_match` calls to work.
|
// must have the parent's depth at this point for these `push_match` calls to work.
|
||||||
for idx in mp.match_lo..mp.match_lo + seq.num_captures {
|
for idx in mp.match_cur..mp.match_cur + seq.num_captures {
|
||||||
mp.push_match(idx, MatchedSeq(empty_matches.clone()));
|
mp.push_match(idx, MatchedSeq(empty_matches.clone()));
|
||||||
}
|
}
|
||||||
mp.seq_depth += 1;
|
mp.seq_depth += 1;
|
||||||
@ -554,7 +548,7 @@ impl<'tt> TtParser<'tt> {
|
|||||||
// is finished.
|
// is finished.
|
||||||
let mut new_mp = sequence.parent.clone();
|
let mut new_mp = sequence.parent.clone();
|
||||||
new_mp.matches = mp.matches.clone();
|
new_mp.matches = mp.matches.clone();
|
||||||
new_mp.match_cur = mp.match_lo + sequence.seq.num_captures;
|
new_mp.match_cur = mp.match_cur;
|
||||||
new_mp.idx += 1;
|
new_mp.idx += 1;
|
||||||
self.cur_mps.push(new_mp);
|
self.cur_mps.push(new_mp);
|
||||||
}
|
}
|
||||||
@ -575,7 +569,7 @@ impl<'tt> TtParser<'tt> {
|
|||||||
// We don't need a separator. Move the "dot" back to the beginning of the
|
// We don't need a separator. Move the "dot" back to the beginning of the
|
||||||
// matcher and try to match again UNLESS we are only allowed to have _one_
|
// matcher and try to match again UNLESS we are only allowed to have _one_
|
||||||
// repetition.
|
// repetition.
|
||||||
mp.match_cur = mp.match_lo;
|
mp.match_cur -= sequence.seq.num_captures;
|
||||||
mp.idx = 0;
|
mp.idx = 0;
|
||||||
self.cur_mps.push(mp);
|
self.cur_mps.push(mp);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user