@@ -4124,22 +4124,13 @@ impl<'a> Parser<'a> {
41244124
41254125 /// Return nth previous token, possibly whitespace
41264126 /// (or [`Token::EOF`] when before the beginning of the stream).
4127- pub fn peek_prev_nth_token_no_skip (&self, n: usize) -> TokenWithSpan {
4127+ pub(crate) fn peek_prev_nth_token_no_skip_ref (&self, n: usize) -> & TokenWithSpan {
41284128 // 0 = next token, -1 = current token, -2 = previous token
41294129 let peek_index = self.index.saturating_sub(1).saturating_sub(n);
41304130 if peek_index == 0 {
4131- return TokenWithSpan {
4132- token: Token::EOF,
4133- span: Span::empty(),
4134- };
4131+ return &EOF_TOKEN;
41354132 }
4136- self.tokens
4137- .get(peek_index)
4138- .cloned()
4139- .unwrap_or(TokenWithSpan {
4140- token: Token::EOF,
4141- span: Span::empty(),
4142- })
4133+ self.tokens.get(peek_index).unwrap_or(&EOF_TOKEN)
41434134 }
41444135
41454136 /// Return true if the next tokens exactly `expected`
@@ -4264,7 +4255,7 @@ impl<'a> Parser<'a> {
42644255 ) -> Result<(), ParserError> {
42654256 let mut look_back_count = 1;
42664257 loop {
4267- let prev_token = self.peek_prev_nth_token_no_skip (look_back_count);
4258+ let prev_token = self.peek_prev_nth_token_no_skip_ref (look_back_count);
42684259 match prev_token.token {
42694260 Token::EOF => break,
42704261 Token::Whitespace(ref w) => match w {
@@ -17780,12 +17771,12 @@ mod tests {
1778017771 }
1778117772
1778217773 #[test]
17783- fn test_peek_prev_nth_token_no_skip () {
17774+ fn test_peek_prev_nth_token_no_skip_ref () {
1778417775 all_dialects().run_parser_method(
1778517776 "SELECT 1;\n-- a comment\nRAISERROR('test', 16, 0);",
1778617777 |parser| {
1778717778 parser.index = 1;
17788- assert_eq!(parser.peek_prev_nth_token_no_skip (0), Token::EOF);
17779+ assert_eq!(parser.peek_prev_nth_token_no_skip_ref (0), & Token::EOF);
1778917780 assert_eq!(parser.index, 1);
1779017781 parser.index = 7;
1779117782 assert_eq!(
@@ -17797,8 +17788,8 @@ mod tests {
1779717788 })
1779817789 );
1779917790 assert_eq!(
17800- parser.peek_prev_nth_token_no_skip (2),
17801- Token::Whitespace(Whitespace::Newline)
17791+ parser.peek_prev_nth_token_no_skip_ref (2),
17792+ & Token::Whitespace(Whitespace::Newline)
1780217793 );
1780317794 },
1780417795 );
0 commit comments