Skip to content
This repository was archived by the owner on May 11, 2023. It is now read-only.

Commit 3d5e915

Browse files
committed
Correctly set range on Indent
1 parent 3ec5114 commit 3d5e915

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

compiler/parser/src/lexer.rs

+12-4
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@
1919
//! .map(|tok| tok.expect("Failed to lex"))
2020
//! .collect::<Vec<_>>();
2121
//!
22-
//! for (start, token, end) in tokens {
22+
//! for (token, range) in tokens {
2323
//! println!(
24-
//! "{start:?}-{end:?} {token:?}",
24+
//! "{token:?}@{range:?}",
2525
//! );
2626
//! }
2727
//! ```
@@ -663,7 +663,15 @@ where
663663
// New indentation level:
664664
self.indentations.push(indentation_level);
665665
let tok_pos = self.get_pos();
666-
self.emit((Tok::Indent, TextRange::empty(tok_pos)));
666+
self.emit((
667+
Tok::Indent,
668+
TextRange::new(
669+
tok_pos
670+
- TextSize::new(indentation_level.spaces)
671+
- TextSize::new(indentation_level.tabs),
672+
tok_pos,
673+
),
674+
));
667675
}
668676
Ordering::Less => {
669677
// One or more dedentations
@@ -1336,7 +1344,7 @@ mod tests {
13361344

13371345
pub fn lex_source(source: &str) -> Vec<Tok> {
13381346
let lexer = lex(source, Mode::Module);
1339-
lexer.map(|x| x.unwrap().1).collect()
1347+
lexer.map(|x| x.unwrap().0).collect()
13401348
}
13411349

13421350
fn str_tok(s: &str) -> Tok {

0 commit comments

Comments
 (0)