@@ -3951,22 +3951,13 @@ impl<'a> Parser<'a> {
39513951
39523952 /// Return nth previous token, possibly whitespace
39533953 /// (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 {
39553955 // 0 = next token, -1 = current token, -2 = previous token
39563956 let peek_index = self.index.saturating_sub(1).saturating_sub(n);
39573957 if peek_index == 0 {
3958- return TokenWithSpan {
3959- token: Token::EOF,
3960- span: Span::empty(),
3961- };
3958+ return &EOF_TOKEN;
39623959 }
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)
39703961 }
39713962
39723963 /// Return true if the next tokens exactly `expected`
@@ -4091,7 +4082,7 @@ impl<'a> Parser<'a> {
40914082 ) -> Result<(), ParserError> {
40924083 let mut look_back_count = 1;
40934084 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);
40954086 match prev_token.token {
40964087 Token::EOF => break,
40974088 Token::Whitespace(ref w) => match w {
@@ -15581,12 +15572,12 @@ mod tests {
1558115572 }
1558215573
1558315574 #[test]
15584- fn test_peek_prev_nth_token_no_skip () {
15575+ fn test_peek_prev_nth_token_no_skip_ref () {
1558515576 all_dialects().run_parser_method(
1558615577 "SELECT 1;\n-- a comment\nRAISERROR('test', 16, 0);",
1558715578 |parser| {
1558815579 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);
1559015581 assert_eq!(parser.index, 1);
1559115582 parser.index = 7;
1559215583 assert_eq!(
@@ -15598,8 +15589,8 @@ mod tests {
1559815589 })
1559915590 );
1560015591 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)
1560315594 );
1560415595 },
1560515596 );
0 commit comments