@@ -4061,22 +4061,13 @@ impl<'a> Parser<'a> {
4061
4061
4062
4062
/// Return nth previous token, possibly whitespace
4063
4063
/// (or [`Token::EOF`] when before the beginning of the stream).
4064
- pub fn peek_prev_nth_token_no_skip (&self, n: usize) -> TokenWithSpan {
4064
+ pub(crate) fn peek_prev_nth_token_no_skip_ref (&self, n: usize) -> & TokenWithSpan {
4065
4065
// 0 = next token, -1 = current token, -2 = previous token
4066
4066
let peek_index = self.index.saturating_sub(1).saturating_sub(n);
4067
4067
if peek_index == 0 {
4068
- return TokenWithSpan {
4069
- token: Token::EOF,
4070
- span: Span::empty(),
4071
- };
4068
+ return &EOF_TOKEN;
4072
4069
}
4073
- self.tokens
4074
- .get(peek_index)
4075
- .cloned()
4076
- .unwrap_or(TokenWithSpan {
4077
- token: Token::EOF,
4078
- span: Span::empty(),
4079
- })
4070
+ self.tokens.get(peek_index).unwrap_or(&EOF_TOKEN)
4080
4071
}
4081
4072
4082
4073
/// Return true if the next tokens exactly `expected`
@@ -4201,7 +4192,7 @@ impl<'a> Parser<'a> {
4201
4192
) -> Result<(), ParserError> {
4202
4193
let mut look_back_count = 1;
4203
4194
loop {
4204
- let prev_token = self.peek_prev_nth_token_no_skip (look_back_count);
4195
+ let prev_token = self.peek_prev_nth_token_no_skip_ref (look_back_count);
4205
4196
match prev_token.token {
4206
4197
Token::EOF => break,
4207
4198
Token::Whitespace(ref w) => match w {
@@ -16843,12 +16834,12 @@ mod tests {
16843
16834
}
16844
16835
16845
16836
#[test]
16846
- fn test_peek_prev_nth_token_no_skip () {
16837
+ fn test_peek_prev_nth_token_no_skip_ref () {
16847
16838
all_dialects().run_parser_method(
16848
16839
"SELECT 1;\n-- a comment\nRAISERROR('test', 16, 0);",
16849
16840
|parser| {
16850
16841
parser.index = 1;
16851
- assert_eq!(parser.peek_prev_nth_token_no_skip (0), Token::EOF);
16842
+ assert_eq!(parser.peek_prev_nth_token_no_skip_ref (0), & Token::EOF);
16852
16843
assert_eq!(parser.index, 1);
16853
16844
parser.index = 7;
16854
16845
assert_eq!(
@@ -16860,8 +16851,8 @@ mod tests {
16860
16851
})
16861
16852
);
16862
16853
assert_eq!(
16863
- parser.peek_prev_nth_token_no_skip (2),
16864
- Token::Whitespace(Whitespace::Newline)
16854
+ parser.peek_prev_nth_token_no_skip_ref (2),
16855
+ & Token::Whitespace(Whitespace::Newline)
16865
16856
);
16866
16857
},
16867
16858
);
0 commit comments