@@ -4036,22 +4036,13 @@ impl<'a> Parser<'a> {
4036
4036
4037
4037
/// Return nth previous token, possibly whitespace
4038
4038
/// (or [`Token::EOF`] when before the beginning of the stream).
4039
- pub fn peek_prev_nth_token_no_skip (&self, n: usize) -> TokenWithSpan {
4039
+ pub(crate) fn peek_prev_nth_token_no_skip_ref (&self, n: usize) -> & TokenWithSpan {
4040
4040
// 0 = next token, -1 = current token, -2 = previous token
4041
4041
let peek_index = self.index.saturating_sub(1).saturating_sub(n);
4042
4042
if peek_index == 0 {
4043
- return TokenWithSpan {
4044
- token: Token::EOF,
4045
- span: Span::empty(),
4046
- };
4043
+ return &EOF_TOKEN;
4047
4044
}
4048
- self.tokens
4049
- .get(peek_index)
4050
- .cloned()
4051
- .unwrap_or(TokenWithSpan {
4052
- token: Token::EOF,
4053
- span: Span::empty(),
4054
- })
4045
+ self.tokens.get(peek_index).unwrap_or(&EOF_TOKEN)
4055
4046
}
4056
4047
4057
4048
/// Return true if the next tokens exactly `expected`
@@ -4176,7 +4167,7 @@ impl<'a> Parser<'a> {
4176
4167
) -> Result<(), ParserError> {
4177
4168
let mut look_back_count = 1;
4178
4169
loop {
4179
- let prev_token = self.peek_prev_nth_token_no_skip (look_back_count);
4170
+ let prev_token = self.peek_prev_nth_token_no_skip_ref (look_back_count);
4180
4171
match prev_token.token {
4181
4172
Token::EOF => break,
4182
4173
Token::Whitespace(ref w) => match w {
@@ -16745,12 +16736,12 @@ mod tests {
16745
16736
}
16746
16737
16747
16738
#[test]
16748
- fn test_peek_prev_nth_token_no_skip () {
16739
+ fn test_peek_prev_nth_token_no_skip_ref () {
16749
16740
all_dialects().run_parser_method(
16750
16741
"SELECT 1;\n-- a comment\nRAISERROR('test', 16, 0);",
16751
16742
|parser| {
16752
16743
parser.index = 1;
16753
- assert_eq!(parser.peek_prev_nth_token_no_skip (0), Token::EOF);
16744
+ assert_eq!(parser.peek_prev_nth_token_no_skip_ref (0), & Token::EOF);
16754
16745
assert_eq!(parser.index, 1);
16755
16746
parser.index = 7;
16756
16747
assert_eq!(
@@ -16762,8 +16753,8 @@ mod tests {
16762
16753
})
16763
16754
);
16764
16755
assert_eq!(
16765
- parser.peek_prev_nth_token_no_skip (2),
16766
- Token::Whitespace(Whitespace::Newline)
16756
+ parser.peek_prev_nth_token_no_skip_ref (2),
16757
+ & Token::Whitespace(Whitespace::Newline)
16767
16758
);
16768
16759
},
16769
16760
);
0 commit comments