diff --git a/dmc-lib/src/lexer.rs b/dmc-lib/src/lexer.rs index ea51ec7..28df445 100644 --- a/dmc-lib/src/lexer.rs +++ b/dmc-lib/src/lexer.rs @@ -27,8 +27,10 @@ impl<'a> Lexer<'a> { let maybe_chunk = self.input.get(self.position..); if maybe_chunk.is_none() { return None; - } else { - chunk = maybe_chunk.unwrap(); + } + chunk = maybe_chunk.unwrap(); + if chunk.is_empty() { + return None; } } @@ -154,4 +156,11 @@ mod tests { assert_next(&mut lexer, TokenKind::End, 3); assert_eq!(lexer.next(), None); } + + #[test] + fn blank_after_last_token_returns_none() { + let mut lexer = Lexer::new("fn "); + assert_next(&mut lexer, TokenKind::Fn, 2); + assert_eq!(lexer.next(), None); + } }