Skip to content

Crash with dutch compound word #12

@TLD136

Description

@TLD136

Hello, When trying to check the word tijdsgebonden(time bound) I get a crash. I just ran the check.rs example but with This dictionary.

In Dutch ij can be just one char ij. I think that this might have something to do with it. Though that ij char is not what I typed. Another thing that might be important is that tijdsgebonden is a compound word. It seems to panic in a check related to compound words. Just tijd as input does work.

Thanks in advance

Edit:
This is on the current master branch.
Linux x86_64 6.12.74-1-lts
rustc 1.93.1 (01f6ddf75 2026-02-11)

Error dump

thread 'main' (189293) panicked at src/checker.rs:2062:21:
byte index 2 is not a char boundary; it is inside 'ij' (bytes 1..3) of `tijdsgebonden`
stack backtrace:
   0:     0x63a824ea78f2 - std::backtrace_rs::backtrace::libunwind::trace::h73aabaf37ceb5073
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
   1:     0x63a824ea78f2 - std::backtrace_rs::backtrace::trace_unsynchronized::h30862f246760437f
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
   2:     0x63a824ea78f2 - std::sys::backtrace::_print_fmt::h2d1afd8848eb5d7a
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:68:9
   3:     0x63a824ea78f2 - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h1851ca2a850bd9a9
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:38:26
   4:     0x63a824eb7b07 - core::fmt::rt::Argument::fmt::he8640bda190d4d38
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/fmt/rt.rs:152:76
   5:     0x63a824eb7b07 - core::fmt::write::h22467d3ad5dd5554
   6:     0x63a824e854c6 - std::io::default_write_fmt::h351a88ae8ee5bcc5
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/io/mod.rs:639:11
   7:     0x63a824e854c6 - std::io::Write::write_fmt::h5e3b6a876f7a20bf
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/io/mod.rs:1994:13
   8:     0x63a824e8c8c6 - std::sys::backtrace::BacktraceLock::print::hc25d10722ea4032d
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:41:9
   9:     0x63a824e8c8c6 - std::panicking::default_hook::{{closure}}::he43c3ac33dfa4b50
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:292:27
  10:     0x63a824e8c726 - std::panicking::default_hook::hd124da54acf1152f
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:319:9
  11:     0x63a824e8cb0b - std::panicking::panic_with_hook::h9b5f1f19954f65a8
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:825:13
  12:     0x63a824e8c988 - std::panicking::panic_handler::{{closure}}::hf431df8c849ee0d6
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:698:13
  13:     0x63a824e8af69 - std::sys::backtrace::__rust_end_short_backtrace::hf97362b31a346cc0
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/sys/backtrace.rs:176:18
  14:     0x63a824e7a51d - __rustc[9e6a08e89e4b9111]::rust_begin_unwind
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:689:5
  15:     0x63a824ebb69c - core::panicking::panic_fmt::ha4414e4328fe24a0
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/panicking.rs:80:14
  16:     0x63a824eb9144 - core::str::slice_error_fail_rt::h5d225212ab673e74
  17:     0x63a824eb8f0a - core::str::slice_error_fail::h4678567854dd8858
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/str/mod.rs:69:5
  18:     0x63a824e44ef0 - core::str::traits::<impl core::slice::index::SliceIndex<str> for core::ops::range::RangeFrom<usize>>::index::hcf686bac3f0d3445
                               at /home/<username>/.local/share/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/traits.rs:550:21
  19:     0x63a824e32928 - core::str::traits::<impl core::ops::index::Index<I> for str>::index::hcb3eeed16e85d7db
                               at /home/<username>/.local/share/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/str/traits.rs:63:15
  20:     0x63a824e60347 - spellbook::checker::Checker<S>::is_compound_forbidden_by_patterns::match_compound_pattern::h9b32a31edd2e3f2c
                               at /home/<username>/git/spellbook/src/checker.rs:2062:21
  21:     0x63a824e0a6d5 - spellbook::checker::Checker<S>::is_compound_forbidden_by_patterns::{{closure}}::h7b575c85944c3c69
                               at /home/<username>/git/spellbook/src/checker.rs:2087:28
  22:     0x63a824df9c27 - <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::any::h4b42626f29c48dff
                               at /home/<username>/.local/share/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/iter/macros.rs:332:24
  23:     0x63a824e0a692 - spellbook::checker::Checker<S>::is_compound_forbidden_by_patterns::hf80ee3bcd1cdcf71
                               at /home/<username>/git/spellbook/src/checker.rs:2087:14
  24:     0x63a824e0545e - spellbook::checker::Checker<S>::check_compound_classic::hc1404dc3a3b23db7
                               at /home/<username>/git/spellbook/src/checker.rs:1488:17
  25:     0x63a824e03a7b - spellbook::checker::Checker<S>::check_compound_impl::h1aba33b7f0c4e737
                               at /home/<username>/git/spellbook/src/checker.rs:1403:40
  26:     0x63a824dfe7f8 - spellbook::checker::Checker<S>::check_compound::hf04449f8c58aec96
                               at /home/<username>/git/spellbook/src/checker.rs:1375:40
  27:     0x63a824dfe1db - spellbook::checker::Checker<S>::check_word::h81c2e76d3778304f
                               at /home/<username>/git/spellbook/src/checker.rs:236:14
  28:     0x63a824dfe3f1 - spellbook::checker::Checker<S>::spell_casing::h68446fb3ad413690
                               at /home/<username>/git/spellbook/src/checker.rs:200:26
  29:     0x63a824dfe8d3 - spellbook::checker::Checker<S>::do_spell_break::h74715d7992635175
                               at /home/<username>/git/spellbook/src/checker.rs:141:36
  30:     0x63a824dfe22b - spellbook::checker::Checker<S>::spell_break::hb99a6a257072dad5
                               at /home/<username>/git/spellbook/src/checker.rs:135:14
  31:     0x63a824e0ffc9 - spellbook::checker::Checker<S>::check::h5d018e764527d534
                               at /home/<username>/git/spellbook/src/checker.rs:119:17
  32:     0x63a824df9621 - spellbook::Dictionary<S>::check::h6fa4e8c970d361f8
                               at /home/<username>/git/spellbook/src/lib.rs:189:24
  33:     0x63a824e1107f - check::main::h77078292b37c6512
                               at /home/<username>/git/spellbook/examples/check.rs:37:13
  34:     0x63a824dfc41b - core::ops::function::FnOnce::call_once::h1d7c13083b580e51
                               at /home/<username>/.local/share/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  35:     0x63a824df692e - std::sys::backtrace::__rust_begin_short_backtrace::h37e11c0d151284a5
                               at /home/<username>/.local/share/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/sys/backtrace.rs:160:18
  36:     0x63a824dfc241 - std::rt::lang_start::{{closure}}::h369b035438830f5a
                               at /home/<username>/.local/share/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:206:18
  37:     0x63a824e86bb6 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::hc0aeb12e6a265870
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/core/src/ops/function.rs:287:21
  38:     0x63a824e86bb6 - std::panicking::catch_unwind::do_call::h424648a3b5b895eb
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:581:40
  39:     0x63a824e86bb6 - std::panicking::catch_unwind::h2eaac0b2decbb2a4
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:544:19
  40:     0x63a824e86bb6 - std::panic::catch_unwind::h36307fcdee1da3b0
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panic.rs:359:14
  41:     0x63a824e86bb6 - std::rt::lang_start_internal::{{closure}}::h1cd37a923f6e6476
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/rt.rs:175:24
  42:     0x63a824e86bb6 - std::panicking::catch_unwind::do_call::hba0faa7802db347f
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:581:40
  43:     0x63a824e86bb6 - std::panicking::catch_unwind::h243e60656f4dd3fd
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panicking.rs:544:19
  44:     0x63a824e86bb6 - std::panic::catch_unwind::h70c7977416bc65d9
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/panic.rs:359:14
  45:     0x63a824e86bb6 - std::rt::lang_start_internal::hb84cc625940d332a
                               at /rustc/01f6ddf7588f42ae2d7eb0a2f21d44e8e96674cf/library/std/src/rt.rs:171:5
  46:     0x63a824dfc227 - std::rt::lang_start::hf25b5fbc99242bdc
                               at /home/<username>/.local/share/rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/std/src/rt.rs:205:5
  47:     0x63a824e112be - main
  48:     0x709bd5b996c1 - <unknown>
  49:     0x709bd5b997f9 - __libc_start_main
  50:     0x63a824df4e95 - _start
  51:                0x0 - <unknown>

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions