Skip to content

Commit 5cefda0

Browse files
committed
fix: small bug in whitespace_tokens, added a few tests for such bugs.
1 parent 0df473b commit 5cefda0

File tree

1 file changed

+22
-1
lines changed

1 file changed

+22
-1
lines changed

crates/pg_lexer/src/lib.rs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ fn whitespace_tokens(input: &str) -> VecDeque<Token> {
8989
} else if let Some(tab) = cap.name("tab") {
9090
tokens.push_back(Token {
9191
token_type: TokenType::Whitespace,
92-
kind: SyntaxKind::Newline,
92+
kind: SyntaxKind::Tab,
9393
text: tab.as_str().to_string(),
9494
span: TextRange::new(
9595
TextSize::from(u32::try_from(tab.start()).unwrap()),
@@ -177,6 +177,27 @@ pub fn lex(text: &str) -> Vec<Token> {
177177
mod tests {
178178
use super::*;
179179

180+
#[test]
181+
fn test_tab_tokens() {
182+
let input = "select\t1";
183+
let tokens = lex(input);
184+
assert_eq!(tokens[1].kind, SyntaxKind::Tab);
185+
}
186+
187+
#[test]
188+
fn test_newline_tokens() {
189+
let input = "select\n1";
190+
let tokens = lex(input);
191+
assert_eq!(tokens[1].kind, SyntaxKind::Newline);
192+
}
193+
194+
#[test]
195+
fn test_whitespace_tokens() {
196+
let input = "select 1";
197+
let tokens = lex(input);
198+
assert_eq!(tokens[1].kind, SyntaxKind::Whitespace);
199+
}
200+
180201
#[test]
181202
fn test_lexer() {
182203
let input = "select 1; \n -- some comment \n select 2";

0 commit comments

Comments
 (0)