Skip to content

Commit

Permalink
Use [ ) ranges for lines too
Browse files Browse the repository at this point in the history
  • Loading branch information
lionel- committed Aug 30, 2024
1 parent fe212e6 commit 900d094
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions crates/harp/src/parser/srcref.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,13 +64,13 @@ impl TryFrom<RObject> for SrcRef {

let line = std::ops::Range {
start: (value.get_value(0)? - 1) as usize,
end: (value.get_value(2)? - 1) as usize,
end: (value.get_value(2)?) as usize,
};

let line_parsed = if unsafe { value.len() >= 8 } {
std::ops::Range {
start: (value.get_value(6)? - 1) as usize,
end: (value.get_value(7)? - 1) as usize,
end: (value.get_value(7)?) as usize,
}
} else {
line.clone()
Expand Down Expand Up @@ -129,20 +129,20 @@ mod tests {
let utf8 = &srcrefs[1];
let bar = &srcrefs[2];

assert_eq!(foo.line, Range { start: 0, end: 0 });
assert_eq!(foo.line_virtual, Range { start: 0, end: 0 });
assert_eq!(foo.line, Range { start: 0, end: 1 });
assert_eq!(foo.line_virtual, Range { start: 0, end: 1 });
assert_eq!(foo.column, Range { start: 0, end: 3 });
assert_eq!(foo.column_byte, Range { start: 0, end: 3 });

// `column_byte` is different because the character takes up two bytes
assert_eq!(utf8.line, Range { start: 2, end: 2 });
assert_eq!(utf8.line_virtual, Range { start: 2, end: 2 });
assert_eq!(utf8.line, Range { start: 2, end: 3 });
assert_eq!(utf8.line_virtual, Range { start: 2, end: 3 });
assert_eq!(utf8.column, Range { start: 0, end: 1 });
assert_eq!(utf8.column_byte, Range { start: 0, end: 2 });

// Ends on different lines
assert_eq!(bar.line, Range { start: 3, end: 5 });
assert_eq!(bar.line_virtual, Range { start: 3, end: 5 });
assert_eq!(bar.line, Range { start: 3, end: 6 });
assert_eq!(bar.line_virtual, Range { start: 3, end: 6 });
assert_eq!(bar.column, Range { start: 0, end: 1 });
assert_eq!(bar.column_byte, Range { start: 0, end: 1 });
})
Expand All @@ -156,12 +156,12 @@ mod tests {
let foo = &srcrefs[0];
let bar = &srcrefs[1];

assert_eq!(foo.line, Range { start: 0, end: 0 });
assert_eq!(foo.line_virtual, Range { start: 0, end: 0 });
assert_eq!(foo.line, Range { start: 0, end: 1 });
assert_eq!(foo.line_virtual, Range { start: 0, end: 1 });

// Custom line via directive
assert_eq!(bar.line, Range { start: 2, end: 2 });
assert_eq!(bar.line_virtual, Range { start: 4, end: 4 });
assert_eq!(bar.line, Range { start: 2, end: 3 });
assert_eq!(bar.line_virtual, Range { start: 4, end: 5 });
})
}
}

0 comments on commit 900d094

Please sign in to comment.