Simple grammar-based test case generator

Overview

tree-splicer

tree-splicer is a simple grammar-based test case generator. It parses a number of input files using tree-sitter grammars, and produces new files formed by splicing together their ASTs.

tree-splicer generates test cases in the tree-crasher fuzzer and in icemaker, though it can also be used as a standalone tool.

tree-sitter grammars are resistant to syntax errors. Therefore, tree-splicer can even mutate syntactically-invalid inputs! You can also use tree-splicer with an incomplete grammar.

Example

Given this simple Rust program:

use std::env;

fn even(x: usize) -> bool {
    if x % 2 == 0 {
        return true;
    } else {
        return false;
    }
}

fn main() -> () {
    let argc = env::args().len();
    println!("Hello, world!");
    if even(argc) {
        println!("Even!");
    } else {
        println!("Odd!");
    }
    return ();
}

Here are a few candidates created by tree-splicer-rust:

use even::env;

fn even() -> bool {
    if even(argc) {
        println!("Even!");
    } else {
        println!("Odd!");
    }
}

fn std() -> () {
    return true;
}
use args::env;

fn argc(main: usize) -> bool {
    return true;
}

fn even(x: usize) -> bool {
    if x % 2 == 0 {
        return true;
    } else {
        return false;
    }
}
use std::env;

fn x(x: usize) -> bool {
    return true;
}

fn x(x: usize) -> () {
    return false;
}

Supported languages

Languages are easy to add, see PR #3 for an example.

  • JavaScript
  • Rust
  • TypeScript

Bugs found

rustc

#109066 #109071 #109072 #109078 #109079 #109090 #109129 #109141 #109143 #109144 #109146 #109147 #109148 #109152 #109178 #109188 #109191 #109204 #109232 #109239 #109296 #109297 #109298 #109299 #109300 #109304 #109305

rustfmt

#5716

Installation

From a release

Statically-linked Linux binaries are available on the releases page.

From crates.io

You can build a released version from crates.io. You'll need the Rust compiler and the Cargo build tool. rustup makes it very easy to obtain these. Then, to install the generator for the language <LANG>, run:

cargo install tree-splicer-<LANG>

This will install binaries in ~/.cargo/bin by default.

Build

To build from source, you'll need the Rust compiler and the Cargo build tool. rustup makes it very easy to obtain these. Then, get the source:

git clone https://github.com/langston-barrett/tree-splicer
cd tree-splicer

Finally, build everything:

cargo build --release

You can find binaries in target/release. Run tests with cargo test.

You might also like...
Kurzlink is a simple static site generator built in rust

kurzlink What is kurzlink? Kurzlink is a simple static site generator built in rust.

 create and test the style and formatting of text in your terminal applications
create and test the style and formatting of text in your terminal applications

description: create and test the style and formatting of text in your terminal applications docs: https://docs.rs/termstyle termstyle is a library tha

A tui to test regexes on the rust regex crate

regex-tui Structure src/ ├── app.rs - holds the states and renders the widgets ├── event.rs - handles the terminal events (key press, mouse cl

A common library and set of test cases for transforming OSM tags to lane specifications

osm2lanes See discussion for context. This repo is currently just for starting this experiment. No license chosen yet. Structure data tests.json—tests

Black-box integration tests for your REST API using the Rust and its test framework

restest Black-box integration test for REST APIs in Rust. This crate provides the [assert_api] macro that allows to declaratively test, given a certai

yet another typing test, but crab flavoured

toipe A trusty terminal typing tester for the tux. Usage Install cargo install toipe Run typing test toipe looks best on a nice terminal (such as Ala

Test whether a given stream is a terminal

is-terminal Test whether a given stream is a terminal is-terminal is a simple utility that answers one question: Is this a terminal? A "terminal", als

Sanctity is an acronym for rust ansi16 color test utility
Sanctity is an acronym for rust ansi16 color test utility

sanctity 🌈 sanctity is an acronym for rust ansi16 color test utility. It prints your own text or the default text in all of the 16 terminal colors.

trigger io::Error's in test, and annotate their source

fault-injection docs Similar to the try! macro or ? operator, but externally controllable to inject faults during testing. Unlike the try! macro or ?

Comments
  • Splice in compatible subtrees

    Splice in compatible subtrees

    tree-splicer currently splices only subtrees that have the exact same node kind. This is suboptimal, the trees only need to have compatible kinds for the result to be syntactically valid.

    opened by langston-barrett 0
  • high number of inner_splices / tests cause panic

    high number of inner_splices / tests cause panic

    when I used

    const SPLICER_CFG: Config = Config {
        inter_splices: 100,
        seed: 0,
        tests: 100,
    };
    

    I ran into a bunch of crashes

    thread '<unnamed>' panicked at 'cannot sample empty range', /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rand-0.8.5/src/rng.rs:134:9
    stack backtrace:
       0:     0x555f29061a8c - std::backtrace_rs::backtrace::libunwind::trace::h1ac6254167c780d9
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
       1:     0x555f29061a8c - std::backtrace_rs::backtrace::trace_unsynchronized::hec2af85915e24f36
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
       2:     0x555f29061a8c - std::sys_common::backtrace::_print_fmt::h58a4e3535fcce206
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:65:5
       3:     0x555f29061a8c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h5107e13758b8321c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:44:22
       4:     0x555f28efe7ce - core::fmt::write::h2e851dc027730d81
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/fmt/mod.rs:1232:17
       5:     0x555f2905d853 - std::io::Write::write_fmt::hca00074de9f85084
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/io/mod.rs:1684:15
       6:     0x555f29061855 - std::sys_common::backtrace::_print::h870053c845cddf24
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:47:5
       7:     0x555f29061855 - std::sys_common::backtrace::print::hb56add862f96c5fd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:34:9
       8:     0x555f2906324d - std::panicking::default_hook::{{closure}}::h636d4ba3ff8fdc46
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:271:22
       9:     0x555f29062fb4 - std::panicking::default_hook::hf29b58145ee6e43c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:290:9
      10:     0x555f2906380f - std::panicking::rust_panic_with_hook::hbf9ef936d990c16f
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:692:13
      11:     0x555f290636e5 - std::panicking::begin_panic_handler::{{closure}}::h6be6433dcb901f4b
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:581:13
      12:     0x555f29061f86 - std::sys_common::backtrace::__rust_end_short_backtrace::h802b6104a4d80829
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:150:18
      13:     0x555f29063452 - rust_begin_unwind
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:579:5
      14:     0x555f28efcec3 - core::panicking::panic_fmt::hf7a8a88b9669732e
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panicking.rs:64:14
      15:     0x555f28efcf5d - core::panicking::panic::h23010f9a5cb8b3d2
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panicking.rs:114:5
      16:     0x555f2907be4e - rand::rng::Rng::gen_range::h2b8563150ea30a83
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rand-0.8.5/src/rng.rs:134:9
      17:     0x555f2907f1fb - tree_splicer::splice::Splicer::pick_usize::h2a2f8833361ecac9
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tree-splicer-0.2.0/src/splice.rs:83:9
      18:     0x555f2907f1fb - tree_splicer::splice::Splicer::pick_idx::he6b69b1cd54f0ae9
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tree-splicer-0.2.0/src/splice.rs:87:9
      19:     0x555f2907f1fb - tree_splicer::splice::Splicer::pick_node::h137c29b6f45973e7
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tree-splicer-0.2.0/src/splice.rs:109:24
      20:     0x555f2907f4f5 - <tree_splicer::splice::Splicer as core::iter::traits::iterator::Iterator>::next::h45ae62469d9cdddd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tree-splicer-0.2.0/src/splice.rs:127:28
      21:     0x555f28f432b4 - <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next::hc4795454d775856b
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/iter/adapters/map.rs:103:9
      22:     0x555f28f432b4 - alloc::vec::Vec<T,A>::extend_desugared::h388c2e3cdd37395d
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/mod.rs:2824:35
      23:     0x555f28f432b4 - <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend::hf5f1416e4d584e50
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/spec_extend.rs:17:9
      24:     0x555f28f432b4 - <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter::he2fb42928fa8521e
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/spec_from_iter_nested.rs:43:9
      25:     0x555f28f432b4 - <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter::he507ed8b350af5ac
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/spec_from_iter.rs:33:9
      26:     0x555f28f432b4 - <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter::h0544f92bc23053a6
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/mod.rs:2724:9
      27:     0x555f28f432b4 - core::iter::traits::iterator::Iterator::collect::h12417f8aef80e7df
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/iter/traits/iterator.rs:1891:9
      28:     0x555f28f432b4 - icemaker::fuzz_tree_splicer::splice_file::h65f0b945b2577b3e
                                   at /home/matthias/vcs/github/icemaker/src/fuzz_tree_splicer.rs:38:10
      29:     0x555f28f432b4 - icemaker::codegen_tree_splicer::{{closure}}::h8bce0c9f35af9211
                                   at /home/matthias/vcs/github/icemaker/src/main.rs:1975:13
      30:     0x555f28f432b4 - core::ops::function::impls::<impl core::ops::function::FnMut<A> for &F>::call_mut::h0d0e1b2830e8bf97
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/ops/function.rs:274:13
      31:     0x555f28f432b4 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once::h33f995629ae98097
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/ops/function.rs:310:13
      32:     0x555f28f432b4 - core::option::Option<T>::map::h0823a28a58d40a1c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/option.rs:1137:29
      33:     0x555f28f432b4 - <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next::h73453388456bb158
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/iter/adapters/map.rs:103:9
      34:     0x555f28f432b4 - rayon::iter::plumbing::Folder::consume_iter::h8fb487819bd2e9a4
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:178:21
      35:     0x555f28f432b4 - <rayon::iter::map::MapFolder<C,F> as rayon::iter::plumbing::Folder<T>>::consume_iter::h077692ad23091a24
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/map.rs:248:21
      36:     0x555f28f432b4 - rayon::iter::plumbing::Producer::fold_with::h66ed914a4e61df5f
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:110:9
      37:     0x555f28f432b4 - rayon::iter::plumbing::bridge_producer_consumer::helper::h54a94e4ec018ef67
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:438:13
      38:     0x555f28f127e5 - rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}::h99aa95945a79717d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:418:21
      39:     0x555f28f127e5 - rayon_core::join::join_context::call_a::{{closure}}::h77ca464e9b51eafd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:124:17
      40:     0x555f28f127e5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h93a7219d79f93939
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      41:     0x555f28f127e5 - std::panicking::try::do_call::ha3888ba26b1ad4cd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      42:     0x555f28f127e5 - std::panicking::try::h511664a2e10f5a62
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      43:     0x555f28f127e5 - std::panic::catch_unwind::hefc3d7628fe68161
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      44:     0x555f28f127e5 - rayon_core::unwind::halt_unwinding::hc2c84e7abcd37bea
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      45:     0x555f28f127e5 - rayon_core::join::join_context::{{closure}}::h659ff64568adb3ac
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:142:24
      46:     0x555f28f436b6 - rayon_core::registry::in_worker::hff724e12e5e595c4
      47:     0x555f28f436b6 - rayon_core::join::join_context::h3cdd8ca7b549499d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:132:5
      48:     0x555f28f436b6 - rayon::iter::plumbing::bridge_producer_consumer::helper::h54a94e4ec018ef67
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:416:47
      49:     0x555f28f127e5 - rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}::h99aa95945a79717d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:418:21
      50:     0x555f28f127e5 - rayon_core::join::join_context::call_a::{{closure}}::h77ca464e9b51eafd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:124:17
      51:     0x555f28f127e5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h93a7219d79f93939
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      52:     0x555f28f127e5 - std::panicking::try::do_call::ha3888ba26b1ad4cd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      53:     0x555f28f127e5 - std::panicking::try::h511664a2e10f5a62
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      54:     0x555f28f127e5 - std::panic::catch_unwind::hefc3d7628fe68161
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      55:     0x555f28f127e5 - rayon_core::unwind::halt_unwinding::hc2c84e7abcd37bea
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      56:     0x555f28f127e5 - rayon_core::join::join_context::{{closure}}::h659ff64568adb3ac
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:142:24
      57:     0x555f28f436b6 - rayon_core::registry::in_worker::hff724e12e5e595c4
      58:     0x555f28f436b6 - rayon_core::join::join_context::h3cdd8ca7b549499d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:132:5
      59:     0x555f28f436b6 - rayon::iter::plumbing::bridge_producer_consumer::helper::h54a94e4ec018ef67
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:416:47
      60:     0x555f28f127e5 - rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}::h99aa95945a79717d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:418:21
      61:     0x555f28f127e5 - rayon_core::join::join_context::call_a::{{closure}}::h77ca464e9b51eafd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:124:17
      62:     0x555f28f127e5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h93a7219d79f93939
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      63:     0x555f28f127e5 - std::panicking::try::do_call::ha3888ba26b1ad4cd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      64:     0x555f28f127e5 - std::panicking::try::h511664a2e10f5a62
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      65:     0x555f28f127e5 - std::panic::catch_unwind::hefc3d7628fe68161
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      66:     0x555f28f127e5 - rayon_core::unwind::halt_unwinding::hc2c84e7abcd37bea
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      67:     0x555f28f127e5 - rayon_core::join::join_context::{{closure}}::h659ff64568adb3ac
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:142:24
      68:     0x555f28f51346 - rayon_core::registry::Registry::in_worker_cold::{{closure}}::{{closure}}::h6b681c54ce22db63
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:541:21
      69:     0x555f28f51346 - rayon_core::job::JobResult<T>::call::{{closure}}::h088af3137b335a33
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:218:41
      70:     0x555f28f51346 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9f2c5fb156fc88cc
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      71:     0x555f28f51346 - std::panicking::try::do_call::h55136e97b0ebb6f1
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      72:     0x555f28f51346 - std::panicking::try::hf06677b9380e8bd0
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      73:     0x555f28f51346 - std::panic::catch_unwind::h3b8c0f61f2d8188c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      74:     0x555f28f51346 - rayon_core::unwind::halt_unwinding::h3d35c271201b39d2
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      75:     0x555f28f51346 - rayon_core::job::JobResult<T>::call::h9158890a56ab3862
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:218:15
      76:     0x555f28f51346 - <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute::h5d310a11168679ef
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:120:32
      77:     0x555f28fcae42 - rayon_core::job::JobRef::execute::hab0ac10f42c55809
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:64:9
      78:     0x555f28fcae42 - rayon_core::registry::WorkerThread::execute::habadded12450ead0
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:874:13
      79:     0x555f28fcae42 - rayon_core::registry::WorkerThread::wait_until_cold::hc9a6449d6367014e
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:820:22
      80:     0x555f28fc9ece - rayon_core::registry::WorkerThread::wait_until::h25314cc75ccf8941
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:803:13
      81:     0x555f28fc9ece - rayon_core::registry::main_loop::h3e9a8ffe486c589a
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:948:5
      82:     0x555f28fc9ece - rayon_core::registry::ThreadBuilder::run::hd3b1e1788ae7777a
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:54:18
      83:     0x555f28fc6b38 - <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn::{{closure}}::h3be0a1bc013b6fc0
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:99:20
      84:     0x555f28fc6b38 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2b327806758af508
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:134:18
      85:     0x555f28fc7179 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h6cb00b65ee3d2678
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/thread/mod.rs:525:17
      86:     0x555f28fc7179 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9635907c1203a441
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      87:     0x555f28fc7179 - std::panicking::try::do_call::ha91f209c1fe4d63f
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      88:     0x555f28fc7179 - std::panicking::try::hc9594638cd4df575
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      89:     0x555f28fc7179 - std::panic::catch_unwind::hbcccbce368a3e483
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      90:     0x555f28fc7179 - std::thread::Builder::spawn_unchecked_::{{closure}}::h522a8d767dfd70b5
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/thread/mod.rs:524:30
      91:     0x555f28fc7179 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h08b27371df15190a
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/ops/function.rs:250:5
      92:     0x555f290683a3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7e0474dd3b8659fa
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/boxed.rs:1988:9
      93:     0x555f290683a3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::heb8c41cf543a5c11
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/boxed.rs:1988:9
      94:     0x555f290683a3 - std::sys::unix::thread::Thread::new::thread_start::hc791abe67253fe06
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys/unix/thread.rs:108:17
      95:     0x7fa80206dbb5 - <unknown>
      96:     0x7fa8020efd90 - <unknown>
      97:                0x0 - <unknown>
    thread '<unnamed>' panicked at 'cannot sample empty range', /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rand-0.8.5/src/rng.rs:134:9
    stack backtrace:
       0:     0x555f29061a8c - std::backtrace_rs::backtrace::libunwind::trace::h1ac6254167c780d9
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
       1:     0x555f29061a8c - std::backtrace_rs::backtrace::trace_unsynchronized::hec2af85915e24f36
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
       2:     0x555f29061a8c - std::sys_common::backtrace::_print_fmt::h58a4e3535fcce206
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:65:5
       3:     0x555f29061a8c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h5107e13758b8321c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:44:22
       4:     0x555f28efe7ce - core::fmt::write::h2e851dc027730d81
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/fmt/mod.rs:1232:17
       5:     0x555f2905d853 - std::io::Write::write_fmt::hca00074de9f85084
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/io/mod.rs:1684:15
       6:     0x555f29061855 - std::sys_common::backtrace::_print::h870053c845cddf24
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:47:5
       7:     0x555f29061855 - std::sys_common::backtrace::print::hb56add862f96c5fd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:34:9
       8:     0x555f2906324d - std::panicking::default_hook::{{closure}}::h636d4ba3ff8fdc46
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:271:22
       9:     0x555f29062fb4 - std::panicking::default_hook::hf29b58145ee6e43c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:290:9
      10:     0x555f2906380f - std::panicking::rust_panic_with_hook::hbf9ef936d990c16f
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:692:13
      11:     0x555f290636e5 - std::panicking::begin_panic_handler::{{closure}}::h6be6433dcb901f4b
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:581:13
      12:     0x555f29061f86 - std::sys_common::backtrace::__rust_end_short_backtrace::h802b6104a4d80829
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:150:18
      13:     0x555f29063452 - rust_begin_unwind
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:579:5
      14:     0x555f28efcec3 - core::panicking::panic_fmt::hf7a8a88b9669732e
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panicking.rs:64:14
      15:     0x555f28efcf5d - core::panicking::panic::h23010f9a5cb8b3d2
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panicking.rs:114:5
      16:     0x555f2907be4e - rand::rng::Rng::gen_range::h2b8563150ea30a83
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rand-0.8.5/src/rng.rs:134:9
      17:     0x555f2907f1fb - tree_splicer::splice::Splicer::pick_usize::h2a2f8833361ecac9
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tree-splicer-0.2.0/src/splice.rs:83:9
      18:     0x555f2907f1fb - tree_splicer::splice::Splicer::pick_idx::he6b69b1cd54f0ae9
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tree-splicer-0.2.0/src/splice.rs:87:9
      19:     0x555f2907f1fb - tree_splicer::splice::Splicer::pick_node::h137c29b6f45973e7
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tree-splicer-0.2.0/src/splice.rs:109:24
      20:     0x555f2907f4f5 - <tree_splicer::splice::Splicer as core::iter::traits::iterator::Iterator>::next::h45ae62469d9cdddd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tree-splicer-0.2.0/src/splice.rs:127:28
      21:     0x555f28f432b4 - <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next::hc4795454d775856b
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/iter/adapters/map.rs:103:9
      22:     0x555f28f432b4 - alloc::vec::Vec<T,A>::extend_desugared::h388c2e3cdd37395d
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/mod.rs:2824:35
      23:     0x555f28f432b4 - <alloc::vec::Vec<T,A> as alloc::vec::spec_extend::SpecExtend<T,I>>::spec_extend::hf5f1416e4d584e50
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/spec_extend.rs:17:9
      24:     0x555f28f432b4 - <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter::he2fb42928fa8521e
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/spec_from_iter_nested.rs:43:9
      25:     0x555f28f432b4 - <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter::he507ed8b350af5ac
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/spec_from_iter.rs:33:9
      26:     0x555f28f432b4 - <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter::h0544f92bc23053a6
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/vec/mod.rs:2724:9
      27:     0x555f28f432b4 - core::iter::traits::iterator::Iterator::collect::h12417f8aef80e7df
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/iter/traits/iterator.rs:1891:9
      28:     0x555f28f432b4 - icemaker::fuzz_tree_splicer::splice_file::h65f0b945b2577b3e
                                   at /home/matthias/vcs/github/icemaker/src/fuzz_tree_splicer.rs:38:10
      29:     0x555f28f432b4 - icemaker::codegen_tree_splicer::{{closure}}::h8bce0c9f35af9211
                                   at /home/matthias/vcs/github/icemaker/src/main.rs:1975:13
      30:     0x555f28f432b4 - core::ops::function::impls::<impl core::ops::function::FnMut<A> for &F>::call_mut::h0d0e1b2830e8bf97
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/ops/function.rs:274:13
      31:     0x555f28f432b4 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &mut F>::call_once::h33f995629ae98097
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/ops/function.rs:310:13
      32:     0x555f28f432b4 - core::option::Option<T>::map::h0823a28a58d40a1c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/option.rs:1137:29
      33:     0x555f28f432b4 - <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::next::h73453388456bb158
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/iter/adapters/map.rs:103:9
      34:     0x555f28f432b4 - rayon::iter::plumbing::Folder::consume_iter::h8fb487819bd2e9a4
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:178:21
      35:     0x555f28f432b4 - <rayon::iter::map::MapFolder<C,F> as rayon::iter::plumbing::Folder<T>>::consume_iter::h077692ad23091a24
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/map.rs:248:21
      36:     0x555f28f432b4 - rayon::iter::plumbing::Producer::fold_with::h66ed914a4e61df5f
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:110:9
      37:     0x555f28f432b4 - rayon::iter::plumbing::bridge_producer_consumer::helper::h54a94e4ec018ef67
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:438:13
      38:     0x555f28f127e5 - rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}::h99aa95945a79717d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:418:21
      39:     0x555f28f127e5 - rayon_core::join::join_context::call_a::{{closure}}::h77ca464e9b51eafd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:124:17
      40:     0x555f28f127e5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h93a7219d79f93939
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      41:     0x555f28f127e5 - std::panicking::try::do_call::ha3888ba26b1ad4cd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      42:     0x555f28f127e5 - std::panicking::try::h511664a2e10f5a62
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      43:     0x555f28f127e5 - std::panic::catch_unwind::hefc3d7628fe68161
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      44:     0x555f28f127e5 - rayon_core::unwind::halt_unwinding::hc2c84e7abcd37bea
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      45:     0x555f28f127e5 - rayon_core::join::join_context::{{closure}}::h659ff64568adb3ac
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:142:24
      46:     0x555f28f436b6 - rayon_core::registry::in_worker::hff724e12e5e595c4
      47:     0x555f28f436b6 - rayon_core::join::join_context::h3cdd8ca7b549499d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:132:5
      48:     0x555f28f436b6 - rayon::iter::plumbing::bridge_producer_consumer::helper::h54a94e4ec018ef67
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:416:47
      49:     0x555f28f127e5 - rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}::h99aa95945a79717d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:418:21
      50:     0x555f28f127e5 - rayon_core::join::join_context::call_a::{{closure}}::h77ca464e9b51eafd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:124:17
      51:     0x555f28f127e5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h93a7219d79f93939
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      52:     0x555f28f127e5 - std::panicking::try::do_call::ha3888ba26b1ad4cd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      53:     0x555f28f127e5 - std::panicking::try::h511664a2e10f5a62
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      54:     0x555f28f127e5 - std::panic::catch_unwind::hefc3d7628fe68161
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      55:     0x555f28f127e5 - rayon_core::unwind::halt_unwinding::hc2c84e7abcd37bea
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      56:     0x555f28f127e5 - rayon_core::join::join_context::{{closure}}::h659ff64568adb3ac
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:142:24
      57:     0x555f28f436b6 - rayon_core::registry::in_worker::hff724e12e5e595c4
      58:     0x555f28f436b6 - rayon_core::join::join_context::h3cdd8ca7b549499d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:132:5
      59:     0x555f28f436b6 - rayon::iter::plumbing::bridge_producer_consumer::helper::h54a94e4ec018ef67
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:416:47
      60:     0x555f28f51e65 - rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}::hce6eb3281cd74feb
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:427:21
      61:     0x555f28f51e65 - rayon_core::join::join_context::call_b::{{closure}}::h9c4e326482d15c49
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:129:25
      62:     0x555f28f51e65 - rayon_core::job::JobResult<T>::call::{{closure}}::hbd9740f9e37706d5
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:218:41
      63:     0x555f28f51e65 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h89a75dbe3ba4c82c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      64:     0x555f28f51e65 - std::panicking::try::do_call::h0f47ac03c770eb47
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      65:     0x555f28f51e65 - std::panicking::try::h338be391a7541860
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      66:     0x555f28f51e65 - std::panic::catch_unwind::h2beffc61409d4fb6
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      67:     0x555f28f51e65 - rayon_core::unwind::halt_unwinding::h1d1a65fd24ac2af7
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      68:     0x555f28f51e65 - rayon_core::job::JobResult<T>::call::hf54f75564bad4611
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:218:15
      69:     0x555f28f51e65 - <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute::h6912e5cdbfb327d1
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:120:32
      70:     0x555f28fcae42 - rayon_core::job::JobRef::execute::hab0ac10f42c55809
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:64:9
      71:     0x555f28fcae42 - rayon_core::registry::WorkerThread::execute::habadded12450ead0
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:874:13
      72:     0x555f28fcae42 - rayon_core::registry::WorkerThread::wait_until_cold::hc9a6449d6367014e
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:820:22
      73:     0x555f28fc978d - rayon_core::registry::WorkerThread::wait_until::h36f987ad9a6daa63
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:803:13
      74:     0x555f28fc978d - rayon_core::join::join_recover_from_panic::hb70522f0dcbe4b06
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:186:5
      75:     0x555f28f129bc - rayon_core::join::join_context::{{closure}}::h659ff64568adb3ac
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:145:25
      76:     0x555f28f436b6 - rayon_core::registry::in_worker::hff724e12e5e595c4
      77:     0x555f28f436b6 - rayon_core::join::join_context::h3cdd8ca7b549499d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:132:5
      78:     0x555f28f436b6 - rayon::iter::plumbing::bridge_producer_consumer::helper::h54a94e4ec018ef67
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:416:47
      79:     0x555f28f127e5 - rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}::h99aa95945a79717d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:418:21
      80:     0x555f28f127e5 - rayon_core::join::join_context::call_a::{{closure}}::h77ca464e9b51eafd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:124:17
      81:     0x555f28f127e5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h93a7219d79f93939
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      82:     0x555f28f127e5 - std::panicking::try::do_call::ha3888ba26b1ad4cd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      83:     0x555f28f127e5 - std::panicking::try::h511664a2e10f5a62
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      84:     0x555f28f127e5 - std::panic::catch_unwind::hefc3d7628fe68161
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      85:     0x555f28f127e5 - rayon_core::unwind::halt_unwinding::hc2c84e7abcd37bea
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      86:     0x555f28f127e5 - rayon_core::join::join_context::{{closure}}::h659ff64568adb3ac
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:142:24
      87:     0x555f28f436b6 - rayon_core::registry::in_worker::hff724e12e5e595c4
      88:     0x555f28f436b6 - rayon_core::join::join_context::h3cdd8ca7b549499d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:132:5
      89:     0x555f28f436b6 - rayon::iter::plumbing::bridge_producer_consumer::helper::h54a94e4ec018ef67
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:416:47
      90:     0x555f28f127e5 - rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}::h99aa95945a79717d
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-1.7.0/src/iter/plumbing/mod.rs:418:21
      91:     0x555f28f127e5 - rayon_core::join::join_context::call_a::{{closure}}::h77ca464e9b51eafd
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:124:17
      92:     0x555f28f127e5 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h93a7219d79f93939
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
      93:     0x555f28f127e5 - std::panicking::try::do_call::ha3888ba26b1ad4cd
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
      94:     0x555f28f127e5 - std::panicking::try::h511664a2e10f5a62
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
      95:     0x555f28f127e5 - std::panic::catch_unwind::hefc3d7628fe68161
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
      96:     0x555f28f127e5 - rayon_core::unwind::halt_unwinding::hc2c84e7abcd37bea
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
      97:     0x555f28f127e5 - rayon_core::join::join_context::{{closure}}::h659ff64568adb3ac
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/join/mod.rs:142:24
      98:     0x555f28f51346 - rayon_core::registry::Registry::in_worker_cold::{{closure}}::{{closure}}::h6b681c54ce22db63
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:541:21
      99:     0x555f28f51346 - rayon_core::job::JobResult<T>::call::{{closure}}::h088af3137b335a33
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:218:41
     100:     0x555f28f51346 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9f2c5fb156fc88cc
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
     101:     0x555f28f51346 - std::panicking::try::do_call::h55136e97b0ebb6f1
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
     102:     0x555f28f51346 - std::panicking::try::hf06677b9380e8bd0
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
     103:     0x555f28f51346 - std::panic::catch_unwind::h3b8c0f61f2d8188c
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
     104:     0x555f28f51346 - rayon_core::unwind::halt_unwinding::h3d35c271201b39d2
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/unwind.rs:17:5
     105:     0x555f28f51346 - rayon_core::job::JobResult<T>::call::h9158890a56ab3862
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:218:15
     106:     0x555f28f51346 - <rayon_core::job::StackJob<L,F,R> as rayon_core::job::Job>::execute::h5d310a11168679ef
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:120:32
     107:     0x555f28fcae42 - rayon_core::job::JobRef::execute::hab0ac10f42c55809
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/job.rs:64:9
     108:     0x555f28fcae42 - rayon_core::registry::WorkerThread::execute::habadded12450ead0
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:874:13
     109:     0x555f28fcae42 - rayon_core::registry::WorkerThread::wait_until_cold::hc9a6449d6367014e
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:820:22
     110:     0x555f28fc9ece - rayon_core::registry::WorkerThread::wait_until::h25314cc75ccf8941
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:803:13
     111:     0x555f28fc9ece - rayon_core::registry::main_loop::h3e9a8ffe486c589a
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:948:5
     112:     0x555f28fc9ece - rayon_core::registry::ThreadBuilder::run::hd3b1e1788ae7777a
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:54:18
     113:     0x555f28fc6b38 - <rayon_core::registry::DefaultSpawn as rayon_core::registry::ThreadSpawn>::spawn::{{closure}}::h3be0a1bc013b6fc0
                                   at /home/matthias/.cargo/registry/src/index.crates.io-6f17d22bba15001f/rayon-core-1.11.0/src/registry.rs:99:20
     114:     0x555f28fc6b38 - std::sys_common::backtrace::__rust_begin_short_backtrace::h2b327806758af508
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys_common/backtrace.rs:134:18
     115:     0x555f28fc7179 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h6cb00b65ee3d2678
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/thread/mod.rs:525:17
     116:     0x555f28fc7179 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h9635907c1203a441
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/panic/unwind_safe.rs:271:9
     117:     0x555f28fc7179 - std::panicking::try::do_call::ha91f209c1fe4d63f
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:487:40
     118:     0x555f28fc7179 - std::panicking::try::hc9594638cd4df575
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panicking.rs:451:19
     119:     0x555f28fc7179 - std::panic::catch_unwind::hbcccbce368a3e483
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/panic.rs:140:14
     120:     0x555f28fc7179 - std::thread::Builder::spawn_unchecked_::{{closure}}::h522a8d767dfd70b5
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/thread/mod.rs:524:30
     121:     0x555f28fc7179 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h08b27371df15190a
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/core/src/ops/function.rs:250:5
     122:     0x555f290683a3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7e0474dd3b8659fa
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/boxed.rs:1988:9
     123:     0x555f290683a3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::heb8c41cf543a5c11
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/alloc/src/boxed.rs:1988:9
     124:     0x555f290683a3 - std::sys::unix::thread::Thread::new::thread_start::hc791abe67253fe06
                                   at /rustc/22f247c6f3ed388cb702d01c2ff27da658a8b353/library/std/src/sys/unix/thread.rs:108:17
     125:     0x7fa80206dbb5 - <unknown>
     126:     0x7fa8020efd90 - <unknown>
     127:                0x0 - <unknown>
    
    bug 
    opened by matthiaskrgr 3
  • very cool!

    very cool!

    Hey, just wanted to say hi! :D Very cool crate! I have hooked this up into icemaker to automatically generate code from a set of input which then can be checked (I already tried something similar previously by feeding everything into a markov chain (lol) and looking what pops out.

    Two small things I noticed: It might be nice if the splice function would not take the hashmap by reference so that it is possible to have a function that takes a path, creates the hashmap, feeds it into splice and then returns an Iterator , right now I think the iterator would outlive the ref to the HashMap and thus it would not work (I've worked around with a Vec right now, meh...)

    I have not gotten to debug this in detail but when I processed rustc tests/ui/issues/issue-74564-if-expr-stack-overflow.rs I ran into a stack overflow. (yay, for fuzzing the fuzzer!), but I could not reproduce this when running the splicer binary directly on it so far...

    opened by matthiaskrgr 11
Owner
Langston Barrett
Researcher with experience in functional programming, formal methods, programming languages, and security.
Langston Barrett
A simple, fast, and easy to use Solidity test generator based on the Branching Tree Technique.

bulloak A simple, fast, and easy to use Solidity test generator based on the Branching Tree Technique. Installing cargo install bulloak Usage Basic Us

Alexander González 38 Aug 7, 2023
A git command to quickly save your local changes in case of earthquake !

git-eq (aka git earthquake) Earthquakes are part of the daily life in many countries like in Taiwan. git-eq is a simple git command to quickly save yo

Jérôme MEVEL 6 Dec 16, 2022
A very basic show-case of rust on the esp32 in 2022

Readme This example code does the following: Set up a WiFi connection on the ESP32-C3 Spawn a thread using std::thread in which we listen for incoming

Mattia 13 Jan 19, 2023
Coppers is a custom test harnass for Rust that measures the energy usage of your test suite.

Coppers Coppers is a test harness for Rust that can measure the evolution of power consumptions of a Rust program between different versions with the

Thijs Raymakers 175 Dec 4, 2022
languagetool-code-comments integrates the LanguageTool API to parse, spell check, and correct the grammar of your code comments!

languagetool-code-comments integrates the LanguageTool API to parse, spell check, and correct the grammar of your code comments! Overview Install MacO

Dustin Blackman 17 Dec 25, 2022
Mypyc DSL grammar for tree-sitter

tree-sitter-mypyc Mypyc DSL grammar for tree-sitter. Installing (Neovim) This is based on the Neovim Tree-sitter docs for adding new parsers. Basicall

dosisod 3 Dec 30, 2022
Simple test app based on rust-psp

PSP Test App Simple test app based on rust-psp. Demonstrating the usage of C libs. Build Download and unzip the prebuilt PSPSDK (built from clang-psp)

Yifeng Wang 4 Nov 28, 2022
Terminal-based typing test.

ttyper Ttyper is a terminal-based typing test built with Rust and tui-rs. installation With Cargo: cargo install ttyper usage For usage instructions,

Max Niederman 527 Dec 17, 2022
Yet another fractal generator (based on glium)

Juliabrot Yet another fractal generator. Juliabrot is a Rust application using the OpenGL Framework to render in realtime. Install Rust To download Ru

Max 2 Feb 27, 2022
A CLI-based pride flag generator written in Rust

?? prideful (in development) A CLI-based pride flag generator written in Rust. How to run Build the project using cargo. Install cargo by following th

Angelo-F 35 Sep 3, 2022