fix(rust): correct indices for Node::utf16_text
This commit is contained in:
parent
32c88194f5
commit
d3c2fed4b3
2 changed files with 14 additions and 1 deletions
|
|
@ -107,6 +107,19 @@ fn test_text_provider_for_arc_of_bytes_slice() {
|
|||
check_parsing(text.clone(), text.as_ref());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_text_provider_for_vec_utf16_text() {
|
||||
let source_text = "你好".encode_utf16().collect::<Vec<_>>();
|
||||
|
||||
let language = get_language("c");
|
||||
let mut parser = Parser::new();
|
||||
parser.set_language(&language).unwrap();
|
||||
let tree = parser.parse_utf16_le(&source_text, None).unwrap();
|
||||
|
||||
let tree_text = tree.root_node().utf16_text(&source_text);
|
||||
assert_eq!(source_text, tree_text);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_text_provider_callback_with_str_slice() {
|
||||
let text: &str = "// comment";
|
||||
|
|
|
|||
|
|
@ -2067,7 +2067,7 @@ impl<'tree> Node<'tree> {
|
|||
|
||||
#[must_use]
|
||||
pub fn utf16_text<'a>(&self, source: &'a [u16]) -> &'a [u16] {
|
||||
&source[self.start_byte()..self.end_byte()]
|
||||
&source[self.start_byte() / 2..self.end_byte() / 2]
|
||||
}
|
||||
|
||||
/// Create a new [`TreeCursor`] starting from this node.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue