@@ -4036,22 +4036,13 @@ impl<'a> Parser<'a> {
40364036
40374037 /// Return nth previous token, possibly whitespace
40384038 /// (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 {
40404040 // 0 = next token, -1 = current token, -2 = previous token
40414041 let peek_index = self.index.saturating_sub(1).saturating_sub(n);
40424042 if peek_index == 0 {
4043- return TokenWithSpan {
4044- token: Token::EOF,
4045- span: Span::empty(),
4046- };
4043+ return &EOF_TOKEN;
40474044 }
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)
40554046 }
40564047
40574048 /// Return true if the next tokens exactly `expected`
@@ -4176,7 +4167,7 @@ impl<'a> Parser<'a> {
41764167 ) -> Result<(), ParserError> {
41774168 let mut look_back_count = 1;
41784169 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);
41804171 match prev_token.token {
41814172 Token::EOF => break,
41824173 Token::Whitespace(ref w) => match w {
@@ -16745,12 +16736,12 @@ mod tests {
1674516736 }
1674616737
1674716738 #[test]
16748- fn test_peek_prev_nth_token_no_skip () {
16739+ fn test_peek_prev_nth_token_no_skip_ref () {
1674916740 all_dialects().run_parser_method(
1675016741 "SELECT 1;\n-- a comment\nRAISERROR('test', 16, 0);",
1675116742 |parser| {
1675216743 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);
1675416745 assert_eq!(parser.index, 1);
1675516746 parser.index = 7;
1675616747 assert_eq!(
@@ -16762,8 +16753,8 @@ mod tests {
1676216753 })
1676316754 );
1676416755 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)
1676716758 );
1676816759 },
1676916760 );
0 commit comments