You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
extern crate im_rc;
fn main() {
let mut l = im_rc::Vector::singleton(0);
for _ in 0..4036 {
let mut tmp = im_rc::Vector::singleton(0);
tmp.append(l);
l = tmp;
}
let len = l.len();
l.slice(1..len);
}
I would expect this program to terminate without panicking, but instead I get the following panic:
thread 'main' panicked at 'attempt to subtract with overflow', /home/dwightguth/.cargo/registry/src/gh.neting.cc-1ecc6299db9ec823/im-rc-12.2.0/./src/nodes/rrb.rs:754:44
stack backtrace:
0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
1: std::sys_common::backtrace::print
at libstd/sys_common/backtrace.rs:71
at libstd/sys_common/backtrace.rs:59
2: std::panicking::default_hook::{{closure}}
at libstd/panicking.rs:211
3: std::panicking::default_hook
at libstd/panicking.rs:227
4: std::panicking::rust_panic_with_hook
at libstd/panicking.rs:511
5: std::panicking::continue_panic_fmt
at libstd/panicking.rs:426
6: rust_begin_unwind
at libstd/panicking.rs:337
7: core::panicking::panic_fmt
at libcore/panicking.rs:92
8: core::panicking::panic
at libcore/panicking.rs:53
9: <im_rc::nodes::rrb::Node<A>>::split
at /home/dwightguth/.cargo/registry/src/gh.neting.cc-1ecc6299db9ec823/im-rc-12.2.0/./src/nodes/rrb.rs:754
10: <im_rc::vector::Vector<A>>::split_off
at /home/dwightguth/.cargo/registry/src/gh.neting.cc-1ecc6299db9ec823/im-rc-12.2.0/./src/vector/mod.rs:968
11: <im_rc::vector::Vector<A>>::slice
at /home/dwightguth/.cargo/registry/src/gh.neting.cc-1ecc6299db9ec823/im-rc-12.2.0/./src/vector/mod.rs:1082
12: rust::main
at src/main.rs:11
13: std::rt::lang_start::{{closure}}
at /checkout/src/libstd/rt.rs:74
14: std::panicking::try::do_call
at libstd/rt.rs:59
at libstd/panicking.rs:310
15: __rust_maybe_catch_panic
at libpanic_unwind/lib.rs:105
16: std::rt::lang_start_internal
at libstd/panicking.rs:289
at libstd/panic.rs:392
at libstd/rt.rs:58
17: std::rt::lang_start
at /checkout/src/libstd/rt.rs:74
18: main
19: __libc_start_main
20: _start
Note that the program works if I reduce the length of the loop to 4035.
The text was updated successfully, but these errors were encountered:
Consider the following program:
I would expect this program to terminate without panicking, but instead I get the following panic:
Note that the program works if I reduce the length of the loop to 4035.
The text was updated successfully, but these errors were encountered: