@@ -3956,22 +3956,13 @@ impl<'a> Parser<'a> {
3956
3956
3957
3957
/// Return nth previous token, possibly whitespace
3958
3958
/// (or [`Token::EOF`] when before the beginning of the stream).
3959
- pub fn peek_prev_nth_token_no_skip (&self, n: usize) -> TokenWithSpan {
3959
+ pub(crate) fn peek_prev_nth_token_no_skip_ref (&self, n: usize) -> & TokenWithSpan {
3960
3960
// 0 = next token, -1 = current token, -2 = previous token
3961
3961
let peek_index = self.index.saturating_sub(1).saturating_sub(n);
3962
3962
if peek_index == 0 {
3963
- return TokenWithSpan {
3964
- token: Token::EOF,
3965
- span: Span::empty(),
3966
- };
3963
+ return &EOF_TOKEN;
3967
3964
}
3968
- self.tokens
3969
- .get(peek_index)
3970
- .cloned()
3971
- .unwrap_or(TokenWithSpan {
3972
- token: Token::EOF,
3973
- span: Span::empty(),
3974
- })
3965
+ self.tokens.get(peek_index).unwrap_or(&EOF_TOKEN)
3975
3966
}
3976
3967
3977
3968
/// Return true if the next tokens exactly `expected`
@@ -4096,7 +4087,7 @@ impl<'a> Parser<'a> {
4096
4087
) -> Result<(), ParserError> {
4097
4088
let mut look_back_count = 1;
4098
4089
loop {
4099
- let prev_token = self.peek_prev_nth_token_no_skip (look_back_count);
4090
+ let prev_token = self.peek_prev_nth_token_no_skip_ref (look_back_count);
4100
4091
match prev_token.token {
4101
4092
Token::EOF => break,
4102
4093
Token::Whitespace(ref w) => match w {
@@ -15420,12 +15411,12 @@ mod tests {
15420
15411
}
15421
15412
15422
15413
#[test]
15423
- fn test_peek_prev_nth_token_no_skip () {
15414
+ fn test_peek_prev_nth_token_no_skip_ref () {
15424
15415
all_dialects().run_parser_method(
15425
15416
"SELECT 1;\n-- a comment\nRAISERROR('test', 16, 0);",
15426
15417
|parser| {
15427
15418
parser.index = 1;
15428
- assert_eq!(parser.peek_prev_nth_token_no_skip (0), Token::EOF);
15419
+ assert_eq!(parser.peek_prev_nth_token_no_skip_ref (0), & Token::EOF);
15429
15420
assert_eq!(parser.index, 1);
15430
15421
parser.index = 7;
15431
15422
assert_eq!(
@@ -15437,8 +15428,8 @@ mod tests {
15437
15428
})
15438
15429
);
15439
15430
assert_eq!(
15440
- parser.peek_prev_nth_token_no_skip (2),
15441
- Token::Whitespace(Whitespace::Newline)
15431
+ parser.peek_prev_nth_token_no_skip_ref (2),
15432
+ & Token::Whitespace(Whitespace::Newline)
15442
15433
);
15443
15434
},
15444
15435
);
0 commit comments