#[test]
fn rope_slice_infinite_loop_line_slice_function() {
use std::panic::catch_unwind;
use crate::Rope;
let r = Rope::from("foo\nbar\r\nbaz\nfoobar\n");
let s = r.byte_slice(2..17);
assert_eq!(s.line_slice(..1), "o\n");
assert_eq!(s.line_slice(1..3), "bar\r\nbaz\n");
assert_eq!(s.line_slice(3..), "foob");
// assert_eq!(s.line_slice(4..), "");
catch_unwind(|| s.line_slice(5..)).unwrap_err();
}
The uncommented line runs indefinitely.
I expected an empty RopeSlice (or a panic).
Take this test as example:
The uncommented line runs indefinitely. I expected an empty
RopeSlice
(or a panic).