@@ -3951,22 +3951,13 @@ impl<'a> Parser<'a> {
3951
3951
3952
3952
/// Return nth previous token, possibly whitespace
3953
3953
/// (or [`Token::EOF`] when before the beginning of the stream).
3954
- pub fn peek_prev_nth_token_no_skip (&self, n: usize) -> TokenWithSpan {
3954
+ pub(crate) fn peek_prev_nth_token_no_skip_ref (&self, n: usize) -> & TokenWithSpan {
3955
3955
// 0 = next token, -1 = current token, -2 = previous token
3956
3956
let peek_index = self.index.saturating_sub(1).saturating_sub(n);
3957
3957
if peek_index == 0 {
3958
- return TokenWithSpan {
3959
- token: Token::EOF,
3960
- span: Span::empty(),
3961
- };
3958
+ return &EOF_TOKEN;
3962
3959
}
3963
- self.tokens
3964
- .get(peek_index)
3965
- .cloned()
3966
- .unwrap_or(TokenWithSpan {
3967
- token: Token::EOF,
3968
- span: Span::empty(),
3969
- })
3960
+ self.tokens.get(peek_index).unwrap_or(&EOF_TOKEN)
3970
3961
}
3971
3962
3972
3963
/// Return true if the next tokens exactly `expected`
@@ -4091,7 +4082,7 @@ impl<'a> Parser<'a> {
4091
4082
) -> Result<(), ParserError> {
4092
4083
let mut look_back_count = 1;
4093
4084
loop {
4094
- let prev_token = self.peek_prev_nth_token_no_skip (look_back_count);
4085
+ let prev_token = self.peek_prev_nth_token_no_skip_ref (look_back_count);
4095
4086
match prev_token.token {
4096
4087
Token::EOF => break,
4097
4088
Token::Whitespace(ref w) => match w {
@@ -15581,12 +15572,12 @@ mod tests {
15581
15572
}
15582
15573
15583
15574
#[test]
15584
- fn test_peek_prev_nth_token_no_skip () {
15575
+ fn test_peek_prev_nth_token_no_skip_ref () {
15585
15576
all_dialects().run_parser_method(
15586
15577
"SELECT 1;\n-- a comment\nRAISERROR('test', 16, 0);",
15587
15578
|parser| {
15588
15579
parser.index = 1;
15589
- assert_eq!(parser.peek_prev_nth_token_no_skip (0), Token::EOF);
15580
+ assert_eq!(parser.peek_prev_nth_token_no_skip_ref (0), & Token::EOF);
15590
15581
assert_eq!(parser.index, 1);
15591
15582
parser.index = 7;
15592
15583
assert_eq!(
@@ -15598,8 +15589,8 @@ mod tests {
15598
15589
})
15599
15590
);
15600
15591
assert_eq!(
15601
- parser.peek_prev_nth_token_no_skip (2),
15602
- Token::Whitespace(Whitespace::Newline)
15592
+ parser.peek_prev_nth_token_no_skip_ref (2),
15593
+ & Token::Whitespace(Whitespace::Newline)
15603
15594
);
15604
15595
},
15605
15596
);
0 commit comments