[INFO] fetching crate thread-ast-engine 0.1.1...
[INFO] testing thread-ast-engine-0.1.1 against beta-2026-04-21 for beta-1.96-2
[INFO] extracting crate thread-ast-engine 0.1.1 into /workspace/builds/worker-5-tc2/source
[INFO] started tweaking crates.io crate thread-ast-engine 0.1.1
[INFO] finished tweaking crates.io crate thread-ast-engine 0.1.1
[INFO] tweaked toml for crates.io crate thread-ast-engine 0.1.1 written to /workspace/builds/worker-5-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate thread-ast-engine 0.1.1 on toolchain beta-2026-04-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate thread-ast-engine 0.1.1 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-04-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] f399ff849bb454c7483b05582a818d24077138b36c3fbafe834fefe8b94a752f
[INFO] running `Command { std: "docker" "start" "-a" "f399ff849bb454c7483b05582a818d24077138b36c3fbafe834fefe8b94a752f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "f399ff849bb454c7483b05582a818d24077138b36c3fbafe834fefe8b94a752f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f399ff849bb454c7483b05582a818d24077138b36c3fbafe834fefe8b94a752f", kill_on_drop: false }`
[INFO] [stdout] f399ff849bb454c7483b05582a818d24077138b36c3fbafe834fefe8b94a752f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] afd74ff128ab53a40e096d8788b630093c9e499809d3559040e6d1021bcf383f
[INFO] running `Command { std: "docker" "start" "-a" "afd74ff128ab53a40e096d8788b630093c9e499809d3559040e6d1021bcf383f", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.44
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling simdeez v2.0.0
[INFO] [stderr]    Compiling rapidhash v4.4.1
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.44
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling tree-sitter v0.25.10
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling mimalloc v0.1.48
[INFO] [stderr]    Compiling thread-utilities v0.1.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling thread-ast-engine v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 8.55s
[INFO] running `Command { std: "docker" "inspect" "afd74ff128ab53a40e096d8788b630093c9e499809d3559040e6d1021bcf383f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "afd74ff128ab53a40e096d8788b630093c9e499809d3559040e6d1021bcf383f", kill_on_drop: false }`
[INFO] [stdout] afd74ff128ab53a40e096d8788b630093c9e499809d3559040e6d1021bcf383f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 673eac2304bc463516707ec2da171b5ce1aae83bc968925999f2fb4d1a46c74f
[INFO] running `Command { std: "docker" "start" "-a" "673eac2304bc463516707ec2da171b5ce1aae83bc968925999f2fb4d1a46c74f", kill_on_drop: false }`
[INFO] [stderr]    Compiling zerocopy v0.8.39
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling tree-sitter v0.25.10
[INFO] [stderr]    Compiling zerocopy-derive v0.8.39
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling thread-ast-engine v0.1.1 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 24.51s
[INFO] running `Command { std: "docker" "inspect" "673eac2304bc463516707ec2da171b5ce1aae83bc968925999f2fb4d1a46c74f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "673eac2304bc463516707ec2da171b5ce1aae83bc968925999f2fb4d1a46c74f", kill_on_drop: false }`
[INFO] [stdout] 673eac2304bc463516707ec2da171b5ce1aae83bc968925999f2fb4d1a46c74f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-04-21" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3d7cfd44ddb48cd42be693dd96712378b0be0990227f68394eb543b8012f91b4
[INFO] running `Command { std: "docker" "start" "-a" "3d7cfd44ddb48cd42be693dd96712378b0be0990227f68394eb543b8012f91b4", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.16s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/thread_ast_engine-b17e7e235dd0689a)
[INFO] [stdout] 
[INFO] [stdout] running 146 tests
[INFO] [stdout] test match_tree::match_node::test::test_relaxed_match ... ok
[INFO] [stdout] test match_tree::match_node::test::test_ast_match ... ok
[INFO] [stdout] test match_tree::test::test_meta_var_multiple_occurrence ... ok
[INFO] [stdout] test match_tree::test::test_gh_1087 ... ok
[INFO] [stdout] test match_tree::test::test_leading_ellipsis ... ok
[INFO] [stdout] test match_tree::test::test_named_ellipsis ... ok
[INFO] [stdout] test match_tree::test::test_nested_match ... ok
[INFO] [stdout] test match_tree::test::test_match_end ... ok
[INFO] [stdout] test match_tree::test::test_should_exactly_match ... ok
[INFO] [stdout] test match_tree::test::test_simple_match ... ok
[INFO] [stdout] test match_tree::test::test_single_ellipsis ... ok
[INFO] [stdout] test match_tree::test::test_skip_trivial_node ... ok
[INFO] [stdout] test match_tree::test::test_string ... ok
[INFO] [stdout] test match_tree::match_node::test::test_signature_match ... ok
[INFO] [stdout] test match_tree::test::test_trailing_ellipsis ... ok
[INFO] [stdout] test match_tree::test::test_match_inner ... ok
[INFO] [stdout] test match_tree::test::test_trivia_in_pattern ... ok
[INFO] [stdout] test matcher::test::test_node_env ... ok
[INFO] [stdout] test matcher::test::test_node_match_as_node ... ok
[INFO] [stdout] test matchers::kind::test::test_kind_match ... ok
[INFO] [stdout] test matchers::kind::test::test_kind_non_match ... ok
[INFO] [stdout] test matcher::test::test_replace_by ... ok
[INFO] [stdout] test matchers::kind::test::test_kind_potential_kinds ... ok
[INFO] [stdout] test matchers::pattern::test::test_bare_wildcard ... ok
[INFO] [stdout] test matchers::pattern::test::test_bare_wildcard_in_context ... ok
[INFO] [stdout] test matchers::pattern::test::test_contextual_potential_kinds ... ok
[INFO] [stdout] test matchers::pattern::test::test_contextual_wildcard ... ok
[INFO] [stdout] test matchers::pattern::test::test_contextual_unmatch_with_env ... ok
[INFO] [stdout] test matchers::pattern::test::test_debug_pattern ... ok
[INFO] [stdout] test matchers::pattern::test::test_class_assignment ... ok
[INFO] [stdout] test matchers::pattern::test::test_extract_duplicate_meta_var ... ok
[INFO] [stdout] test matchers::pattern::test::test_multi_node_meta_var ... ignored, multi-node patterns not yet implemented
[INFO] [stdout] test matchers::pattern::test::test_multi_node_pattern ... ignored, multi-node patterns not yet implemented
[INFO] [stdout] test matchers::pattern::test::test_contextual_pattern ... ok
[INFO] [stdout] test match_tree::test::test_meta_var_named ... ok
[INFO] [stdout] test matchers::pattern::test::test_contextual_pattern_vars ... ok
[INFO] [stdout] test matchers::pattern::test::test_meta_variable_env ... ok
[INFO] [stdout] test matchers::pattern::test::test_pattern_error ... ok
[INFO] [stdout] test matchers::pattern::test::test_pattern_size ... ignored, struct layout is compiler and platform specific
[INFO] [stdout] test matchers::pattern::test::test_pattern_fixed_string ... ok
[INFO] [stdout] test matchers::pattern::test::test_pattern_potential_kinds ... ok
[INFO] [stdout] test matchers::pattern::test::test_whitespace ... ok
[INFO] [stdout] test meta_var::test::test_match_constraints ... ok
[INFO] [stdout] test matchers::pattern::test::test_pattern_with_non_root_meta_var ... ok
[INFO] [stdout] test meta_var::test::test_match_not_constraints ... ok
[INFO] [stdout] test matchers::pattern::test::test_return ... ok
[INFO] [stdout] test meta_var::test::test_match_var ... ok
[INFO] [stdout] test meta_var::test::test_non_ascii_meta_var ... ok
[INFO] [stdout] test matchers::pattern::test::test_pattern_should_not_pollute_env ... ok
[INFO] [stdout] test meta_var::test::test_not_meta_var ... ok
[INFO] [stdout] test node::test::precedes ... ok
[INFO] [stdout] test meta_var::test::test_multi_var_match ... ok
[INFO] [stdout] test meta_var::test::test_multi_var_match_with_trailing ... ok
[INFO] [stdout] test node::test::follows ... ok
[INFO] [stdout] test matchers::pattern::test::test_extract_meta_var_from_pattern ... ok
[INFO] [stdout] test matchers::pattern::test::test_gh_1087 ... ok
[INFO] [stdout] test matchers::pattern::test::test_match_non_atomic ... ok
[INFO] [stdout] test matchers::pattern::test::test_meta_variable ... ok
[INFO] [stdout] test node::test::test_ascii_pos ... ok
[INFO] [stdout] test match_tree::test::test_ellipsis_end ... ok
[INFO] [stdout] test node::test::test_child_by_field_id ... ok
[INFO] [stdout] test node::test::test_children ... ok
[INFO] [stdout] test node::test::test_remove ... ok
[INFO] [stdout] test node::test::test_display_context ... ok
[INFO] [stdout] test node::test::test_replace_all_multiple_sorted ... ok
[INFO] [stdout] test node::test::test_multi_line_context ... ok
[INFO] [stdout] test node::test::test_inside ... ok
[INFO] [stdout] test node::test::test_field ... ok
[INFO] [stdout] test node::test::test_empty ... ok
[INFO] [stdout] test node::test::test_replace_all_nested ... ok
[INFO] [stdout] test node::test::test_unicode_pos ... ok
[INFO] [stdout] test ops::test::test_all_kinds ... ok
[INFO] [stdout] test matchers::pattern::test::test_extract_complex_meta_var ... ok
[INFO] [stdout] test ops::test::test_multiple_match ... ok
[INFO] [stdout] test ops::test::test_not ... ok
[INFO] [stdout] test ops::test::test_any_kinds ... ok
[INFO] [stdout] test ops::test::test_or_revert_env ... ok
[INFO] [stdout] test ops::test::test_or_kinds ... ok
[INFO] [stdout] test ops::test::test_and ... ok
[INFO] [stdout] test pinned::test::test_borrow ... ok
[INFO] [stdout] test ops::test::test_all_revert_env ... ok
[INFO] [stdout] test ops::test::test_or ... ok
[INFO] [stdout] test ops::test::test_api_or ... ok
[INFO] [stdout] test pinned::test::test_node_match ... ignored, not yet implemented
[INFO] [stdout] test ops::test::test_and_kinds ... ok
[INFO] [stdout] test pinned::test::test_vec_node ... ok
[INFO] [stdout] test replacer::indent::test::test_leading_text_replace ... ok
[INFO] [stdout] test replacer::indent::test::test_first_line_indent_deindent ... ok
[INFO] [stdout] test replacer::indent::test::test_long_line_no_deindent ... ok
[INFO] [stdout] test replacer::indent::test::test_malformed_deindent ... ok
[INFO] [stdout] test replacer::indent::test::test_indent_replace ... ok
[INFO] [stdout] test replacer::indent::test::test_no_deindent ... ok
[INFO] [stdout] test replacer::indent::test::test_nested_deindent ... ok
[INFO] [stdout] test replacer::indent::test::test_simple_replace ... ok
[INFO] [stdout] test replacer::indent::test::test_simple_deindent ... ok
[INFO] [stdout] test replacer::indent::test::test_space_in_middle_deindent ... ok
[INFO] [stdout] test ops::test::test_multiple_match_order ... ok
[INFO] [stdout] test replacer::structural::test::test_multiple_env ... ok
[INFO] [stdout] test replacer::structural::test::test_ellipsis_meta_var ... ok
[INFO] [stdout] test replacer::indent::test::test_middle_deindent ... ok
[INFO] [stdout] test replacer::structural::test::test_nested_matching_replace ... ok
[INFO] [stdout] test replacer::structural::test::test_no_env ... ok
[INFO] [stdout] test replacer::structural::test::test_multi_ellipsis ... ok
[INFO] [stdout] test replacer::structural::test::test_multiple_occurrences ... ok
[INFO] [stdout] test replacer::template::test::test_example ... ok
[INFO] [stdout] test replacer::template::test::test_multi_ellipsis ... ok
[INFO] [stdout] test replacer::template::test::test_multi_row_replace ... ok
[INFO] [stdout] test replacer::structural::test::test_single_env ... ok
[INFO] [stdout] test replacer::template::test::test_multiple_env ... ok
[INFO] [stdout] test replacer::template::test::test_ellipsis_meta_var ... ok
[INFO] [stdout] test replacer::template::test::test_no_env ... ok
[INFO] [stdout] test replacer::template::test::test_multiple_occurrences ... ok
[INFO] [stdout] test replacer::template::test::test_replace_rewriter ... ok
[INFO] [stdout] test replacer::template::test::test_template_vars ... ok
[INFO] [stdout] test replacer::template::test::test_replace_in_string ... ok
[INFO] [stdout] test replacer::template::test::test_single_env ... ok
[INFO] [stdout] test replacer::template::test::test_nested_matching_replace ... ok
[INFO] [stdout] test replacer::template::test::test_template ... ok
[INFO] [stdout] test tree_sitter::test::test_edit ... ok
[INFO] [stdout] test test::test_replace_trivia ... ok
[INFO] [stdout] test test::test_replace_by_rule ... ok
[INFO] [stdout] test test::test_replace_unnamed_node ... ok
[INFO] [stdout] test test::test_replace_trivia_with_skipped ... ok
[INFO] [stdout] test tree_sitter::test::test_string ... ok
[INFO] [stdout] test ops::test::test_api_and ... ok
[INFO] [stdout] test tree_sitter::test::test_row_col ... ok
[INFO] [stdout] test tree_sitter::test::test_object_literal ... ok
[INFO] [stdout] test ops::test::test_any_revert_env ... ok
[INFO] [stdout] test tree_sitter::traversal::test::tes_pre_order ... ok
[INFO] [stdout] test tree_sitter::traversal::test::test_non_root_traverse ... ok
[INFO] [stdout] test tree_sitter::test::test_tree_sitter ... ok
[INFO] [stdout] test test::test_replace ... ok
[INFO] [stdout] test tree_sitter::traversal::test::test_fused_traversal ... ok
[INFO] [stdout] test tree_sitter::traversal::test::test_different_order ... ok
[INFO] [stdout] test replacer::indent::test::test_leading_text_indent_replace ... ok
[INFO] [stdout] test tree_sitter::traversal::test::test_pre_order_visitor ... ok
[INFO] [stdout] test tree_sitter::traversal::test::test_post_order_visitor ... ok
[INFO] [stdout] test tree_sitter::traversal::test::test_traversal_leaf ... ok
[INFO] [stdout] test tree_sitter::traversal::test::test_post_order ... ok
[INFO] [stdout] test node::test::test_field_children ... ok
[INFO] [stdout] test matchers::pattern::test::test_error_kind ... ok
[INFO] [stdout] test matchers::pattern::test::test_contextual_match_with_env ... ok
[INFO] [stdout] test match_tree::match_node::test::test_cst_match ... ok
[INFO] [stdout] test node::test::test_has ... ok
[INFO] [stdout] test node::test::test_is_leaf ... ok
[INFO] [stdout] test replacer::structural::test::test_replace_in_string ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 142 passed; 0 failed; 4 ignored; 0 measured; 0 filtered out; finished in 0.10s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests thread_ast_engine
[INFO] [stdout] 
[INFO] [stdout] running 51 tests
[INFO] [stdout] test src/match_tree/strictness.rs - match_tree::strictness (line 30) ... ignored
[INFO] [stdout] test src/matcher.rs - matcher (line 85) ... ignored
[INFO] [stdout] test src/matchers/kind.rs - matchers::kind (line 21) ... ignored
[INFO] [stdout] test src/matchers/kind.rs - matchers::kind::KindMatcher (line 82) ... ignored
[INFO] [stdout] test src/matchers/mod.rs - matchers (line 29) ... ignored
[INFO] [stdout] test src/matchers/mod.rs - matchers (line 55) ... ignored
[INFO] [stdout] test src/matchers/text.rs - matchers::text (line 20) ... ignored
[INFO] [stdout] test src/matchers/text.rs - matchers::text::RegexMatcher (line 70) ... ignored
[INFO] [stdout] test src/matchers/types.rs - matchers::types::MatchStrictness (line 199) ... ignored
[INFO] [stdout] test src/matchers/types.rs - matchers::types::Matcher (line 47) ... ignored
[INFO] [stdout] test src/matchers/types.rs - matchers::types::NodeMatch (line 163) ... ignored
[INFO] [stdout] test src/matchers/types.rs - matchers::types::Pattern (line 228) ... ignored
[INFO] [stdout] test src/pinned.rs - pinned (line 15) ... ignored
[INFO] [stdout] test src/pinned.rs - pinned (line 24) ... ignored
[INFO] [stdout] test src/pinned.rs - pinned::PinnedNodeData (line 104) ... ignored
[INFO] [stdout] test src/pinned.rs - pinned::PinnedNodeData (line 87) ... ignored
[INFO] [stdout] test src/pinned.rs - pinned::PinnedNodeData (line 96) ... ignored
[INFO] [stdout] test src/lib.rs - (line 80) - compile ... FAILED
[INFO] [stdout] test src/node.rs - node::Root (line 118) - compile ... FAILED
[INFO] [stdout] test src/replacer/indent.rs - replacer::indent (line 39) ... ignored
[INFO] [stdout] test src/replacer/indent.rs - replacer::indent (line 53) ... ignored
[INFO] [stdout] test src/replacer/indent.rs - replacer::indent (line 60) ... ignored
[INFO] [stdout] test src/replacer/indent.rs - replacer::indent (line 69) ... ignored
[INFO] [stdout] test src/replacer/indent.rs - replacer::indent::extract_with_deindent (line 147) ... ignored
[INFO] [stdout] test src/replacer/structural.rs - replacer::structural::gen_replacement (line 79) ... ignored
[INFO] [stdout] test src/source.rs - source (line 37) ... ignored
[INFO] [stdout] test src/source.rs - source::Content (line 256) ... ignored
[INFO] [stdout] test src/source.rs - source::Doc (line 208) ... ignored
[INFO] [stdout] test src/source.rs - source::Edit (line 61) ... ignored
[INFO] [stdout] test src/node.rs - node (line 19) - compile ... FAILED
[INFO] [stdout] test src/tree_sitter/mod.rs - tree_sitter::LanguageExt (line 400) ... ignored
[INFO] [stdout] test src/tree_sitter/mod.rs - tree_sitter::LanguageExt::ast_grep (line 429) ... ignored
[INFO] [stdout] test src/node.rs - node::Node (line 208) - compile ... FAILED
[INFO] [stdout] test src/matcher.rs - matcher (line 48) - compile ... FAILED
[INFO] [stdout] test src/language.rs - language (line 25) - compile ... FAILED
[INFO] [stdout] test src/replacer.rs - replacer (line 30) - compile ... FAILED
[INFO] [stdout] test src/matcher.rs - matcher (line 31) - compile ... FAILED
[INFO] [stdout] test src/tree_sitter/mod.rs - tree_sitter::StrDoc (line 145) - compile ... FAILED
[INFO] [stdout] test src/matchers/types.rs - matchers::types::MatcherExt (line 133) - compile ... FAILED
[INFO] [stdout] test src/replacer.rs - replacer (line 43) - compile ... FAILED
[INFO] [stdout] test src/lib.rs - (line 53) - compile ... FAILED
[INFO] [stdout] test src/meta_var.rs - meta_var (line 20) - compile ... FAILED
[INFO] [stdout] test src/lib.rs - (line 126) - compile ... FAILED
[INFO] [stdout] test src/node.rs - node::Position (line 62) - compile ... FAILED
[INFO] [stdout] test src/lib.rs - (line 147) - compile ... FAILED
[INFO] [stdout] test src/tree_sitter/traversal.rs - tree_sitter::traversal (line 55) - compile ... FAILED
[INFO] [stdout] test src/lib.rs - (line 35) - compile ... FAILED
[INFO] [stdout] test src/tree_sitter/mod.rs - tree_sitter (line 43) - compile ... FAILED
[INFO] [stdout] test src/tree_sitter/traversal.rs - tree_sitter::traversal::Visitor (line 116) - compile ... FAILED
[INFO] [stdout] test src/replacer.rs - replacer::Replacer (line 85) - compile ... FAILED
[INFO] [stdout] test src/tree_sitter/traversal.rs - tree_sitter::traversal (line 25) - compile ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- src/lib.rs - (line 80) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/lib.rs:85:11
[INFO] [stdout]    |
[INFO] [stdout] 85 | let ast = Language::Tsx.ast_grep("console.log('Hello', 'World', 123)");
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 85 | let ast = <dyn Language>::Tsx.ast_grep("console.log('Hello', 'World', 123)");
[INFO] [stdout]    |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/node.rs - node::Root (line 118) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/node.rs:123:15
[INFO] [stdout]     |
[INFO] [stdout] 123 | let mut ast = Language::Tsx.ast_grep("let x = 42;");
[INFO] [stdout]     |               ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 123 | let mut ast = <dyn Language>::Tsx.ast_grep("let x = 42;");
[INFO] [stdout]     |               ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/node.rs - node (line 19) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/node.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 | let ast = Language::Tsx.ast_grep("function foo() { return 42; }");
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 24 | let ast = <dyn Language>::Tsx.ast_grep("function foo() { return 42; }");
[INFO] [stdout]    |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/node.rs - node::Node (line 208) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/node.rs:213:11
[INFO] [stdout]     |
[INFO] [stdout] 213 | let ast = Language::Tsx.ast_grep("function hello() { return 'world'; }");
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 213 | let ast = <dyn Language>::Tsx.ast_grep("function hello() { return 'world'; }");
[INFO] [stdout]     |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/matcher.rs - matcher (line 48) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/matcher.rs:54:11
[INFO] [stdout]    |
[INFO] [stdout] 54 | let ast = Language::Tsx.ast_grep(code);
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 54 | let ast = <dyn Language>::Tsx.ast_grep(code);
[INFO] [stdout]    |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/language.rs - language (line 25) stdout ----
[INFO] [stdout] error[E0422]: cannot find struct, variant or union type `Tsx` in this scope
[INFO] [stdout]   --> src/language.rs:29:12
[INFO] [stdout]    |
[INFO] [stdout] 29 | let lang = Tsx {};
[INFO] [stdout]    |            ^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0422`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/replacer.rs - replacer (line 30) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/replacer.rs:35:15
[INFO] [stdout]    |
[INFO] [stdout] 35 | let mut ast = Language::Tsx.ast_grep("var x = 42;");
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 35 | let mut ast = <dyn Language>::Tsx.ast_grep("var x = 42;");
[INFO] [stdout]    |               ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/matcher.rs - matcher (line 31) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/matcher.rs:36:11
[INFO] [stdout]    |
[INFO] [stdout] 36 | let ast = Language::Tsx.ast_grep("let x = 42;");
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 36 | let ast = <dyn Language>::Tsx.ast_grep("let x = 42;");
[INFO] [stdout]    |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tree_sitter/mod.rs - tree_sitter::StrDoc (line 145) stdout ----
[INFO] [stdout] error[E0277]: `JavaScript` doesn't implement `Debug`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:149:38
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl thread_ast_engine::Language for JavaScript {
[INFO] [stdout]     |                                      ^^^^^^^^^^ the trait `Debug` is not implemented for `JavaScript`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `JavaScript` or manually `impl Debug for JavaScript`
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]    --> src/language.rs:43:29
[INFO] [stdout]     |
[INFO] [stdout]  43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `JavaScript` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 148 + #[derive(Debug)]
[INFO] [stdout] 149 | struct JavaScript;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `JavaScript: Clone` is not satisfied
[INFO] [stdout]    --> src/tree_sitter/mod.rs:149:38
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl thread_ast_engine::Language for JavaScript {
[INFO] [stdout]     |                                      ^^^^^^^^^^ the trait `Clone` is not implemented for `JavaScript`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]    --> src/language.rs:43:21
[INFO] [stdout]     |
[INFO] [stdout]  43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]     |                     ^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `JavaScript` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 148 + #[derive(Clone)]
[INFO] [stdout] 149 | struct JavaScript;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `JavaScript` doesn't implement `Debug`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:154:54
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl thread_ast_engine::tree_sitter::LanguageExt for JavaScript {
[INFO] [stdout]     |                                                      ^^^^^^^^^^ the trait `Debug` is not implemented for `JavaScript`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `JavaScript` or manually `impl Debug for JavaScript`
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `JavaScript`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/mod.rs:149:1
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl thread_ast_engine::Language for JavaScript {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JavaScript` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `JavaScript` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 148 + #[derive(Debug)]
[INFO] [stdout] 149 | struct JavaScript;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `JavaScript: Clone` is not satisfied
[INFO] [stdout]    --> src/tree_sitter/mod.rs:154:54
[INFO] [stdout]     |
[INFO] [stdout] 154 | impl thread_ast_engine::tree_sitter::LanguageExt for JavaScript {
[INFO] [stdout]     |                                                      ^^^^^^^^^^ the trait `Clone` is not implemented for `JavaScript`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `JavaScript`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/mod.rs:149:1
[INFO] [stdout]     |
[INFO] [stdout] 149 | impl thread_ast_engine::Language for JavaScript {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `JavaScript` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `JavaScript` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 148 + #[derive(Clone)]
[INFO] [stdout] 149 | struct JavaScript;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `root_node` found for struct `StrDoc<L>` in the current scope
[INFO] [stdout]    --> src/tree_sitter/mod.rs:158:16
[INFO] [stdout]     |
[INFO] [stdout] 158 | let root = doc.root_node();
[INFO] [stdout]     |                ^^^^^^^^^ method not found in `StrDoc<JavaScript>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/source.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn root_node(&self) -> Self::Node<'_>;
[INFO] [stdout]     |        --------- the method is available for `StrDoc<JavaScript>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: one of the expressions' fields has a method of the same name
[INFO] [stdout]     |
[INFO] [stdout] 158 | let root = doc.tree.root_node();
[INFO] [stdout]     |                +++++
[INFO] [stdout] help: trait `Doc` which provides `root_node` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout] 144 + use crate::thread_ast_engine::Doc;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/matchers/types.rs - matchers::types::MatcherExt (line 133) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/matchers/types.rs:138:11
[INFO] [stdout]     |
[INFO] [stdout] 138 | let ast = Language::Tsx.ast_grep("const x = 42;");
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 138 | let ast = <dyn Language>::Tsx.ast_grep("const x = 42;");
[INFO] [stdout]     |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/replacer.rs - replacer (line 43) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/replacer.rs:48:18
[INFO] [stdout]    |
[INFO] [stdout] 48 | let mut target = Language::Tsx.ast_grep("old_function();");
[INFO] [stdout]    |                  ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 48 | let mut target = <dyn Language>::Tsx.ast_grep("old_function();");
[INFO] [stdout]    |                  ++++         +
[INFO] [stdout] 
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/replacer.rs:49:19
[INFO] [stdout]    |
[INFO] [stdout] 49 | let replacement = Language::Tsx.ast_grep("new_function(42)");
[INFO] [stdout]    |                   ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 49 | let replacement = <dyn Language>::Tsx.ast_grep("new_function(42)");
[INFO] [stdout]    |                   ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 53) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/lib.rs:59:11
[INFO] [stdout]    |
[INFO] [stdout] 59 | let ast = Language::Tsx.ast_grep("function add(a, b) { return a + b; }");
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 59 | let ast = <dyn Language>::Tsx.ast_grep("function add(a, b) { return a + b; }");
[INFO] [stdout]    |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/meta_var.rs - meta_var (line 20) stdout ----
[INFO] [stdout] error[E0425]: cannot find value `node` in this scope
[INFO] [stdout]   --> src/meta_var.rs:25:18
[INFO] [stdout]    |
[INFO] [stdout] 25 | env.insert("$A", node);
[INFO] [stdout]    |                  ^^^^ not found in this scope
[INFO] [stdout] 
[INFO] [stdout] error[E0603]: function `extract_meta_var` is private
[INFO] [stdout]    --> src/meta_var.rs:22:61
[INFO] [stdout]     |
[INFO] [stdout]  22 | use thread_ast_engine::meta_var::{MetaVarEnv, MetaVariable, extract_meta_var};
[INFO] [stdout]     |                                                             ^^^^^^^^^^^^^^^^ private function
[INFO] [stdout]     |
[INFO] [stdout] note: the function `extract_meta_var` is defined here
[INFO] [stdout]    --> src/meta_var.rs:313:1
[INFO] [stdout]     |
[INFO] [stdout] 313 | pub(crate) fn extract_meta_var(src: &str, meta_char: char) -> Option<MetaVariable> {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 2 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0425, E0603.
[INFO] [stdout] For more information about an error, try `rustc --explain E0425`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 126) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:138:11
[INFO] [stdout]     |
[INFO] [stdout] 138 | let ast = Language::Tsx.ast_grep("const x = 42;");
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 138 | let ast = <dyn Language>::Tsx.ast_grep("const x = 42;");
[INFO] [stdout]     |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/node.rs - node::Position (line 62) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/node.rs:66:11
[INFO] [stdout]    |
[INFO] [stdout] 66 | let ast = Language::Tsx.ast_grep("let x = 42;\nlet y = 24;");
[INFO] [stdout]    |           ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 66 | let ast = <dyn Language>::Tsx.ast_grep("let x = 42;\nlet y = 24;");
[INFO] [stdout]    |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 147) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]    --> src/lib.rs:152:11
[INFO] [stdout]     |
[INFO] [stdout] 152 | let ast = Language::Tsx.ast_grep("if (condition) { doSomething(); } else { doOther(); }");
[INFO] [stdout]     |           ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]     |
[INFO] [stdout] 152 | let ast = <dyn Language>::Tsx.ast_grep("if (condition) { doSomething(); } else { doOther(); }");
[INFO] [stdout]     |           ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tree_sitter/traversal.rs - tree_sitter::traversal (line 55) stdout ----
[INFO] [stdout] error[E0277]: `Tsx` doesn't implement `Debug`
[INFO] [stdout]   --> src/tree_sitter/traversal.rs:61:38
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]    |                                      ^^^ the trait `Debug` is not implemented for `Tsx`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `Tsx` or manually `impl Debug for Tsx`
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]   --> src/language.rs:43:29
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Debug)]`
[INFO] [stdout]    |
[INFO] [stdout] 60 + #[derive(Debug)]
[INFO] [stdout] 61 | struct Tsx;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tsx: Clone` is not satisfied
[INFO] [stdout]   --> src/tree_sitter/traversal.rs:61:38
[INFO] [stdout]    |
[INFO] [stdout] 61 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]    |                                      ^^^ the trait `Clone` is not implemented for `Tsx`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]   --> src/language.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]    |                     ^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Clone)]`
[INFO] [stdout]    |
[INFO] [stdout] 60 + #[derive(Clone)]
[INFO] [stdout] 61 | struct Tsx;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Tsx` doesn't implement `Debug`
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:66:22
[INFO] [stdout]     |
[INFO] [stdout]  66 | impl LanguageExt for Tsx {
[INFO] [stdout]     |                      ^^^ the trait `Debug` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Tsx` or manually `impl Debug for Tsx`
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `Tsx`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:61:1
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Tsx` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout]  60 + #[derive(Debug)]
[INFO] [stdout]  61 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tsx: Clone` is not satisfied
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:66:22
[INFO] [stdout]     |
[INFO] [stdout]  66 | impl LanguageExt for Tsx {
[INFO] [stdout]     |                      ^^^ the trait `Clone` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `Tsx`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:61:1
[INFO] [stdout]     |
[INFO] [stdout]  61 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Tsx` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout]  60 + #[derive(Clone)]
[INFO] [stdout]  61 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0382]: use of moved value: `root`
[INFO] [stdout]   --> src/tree_sitter/traversal.rs:81:12
[INFO] [stdout]    |
[INFO] [stdout] 70 | let root = ast.root();
[INFO] [stdout]    |     ---- move occurs because `root` has type `Node<'_, StrDoc<Tsx>>`, which does not implement the `Copy` trait
[INFO] [stdout] ...
[INFO] [stdout] 75 |     .visit(root)
[INFO] [stdout]    |            ---- value moved here
[INFO] [stdout] ...
[INFO] [stdout] 81 |     .visit(root)
[INFO] [stdout]    |            ^^^^ value used here after move
[INFO] [stdout]    |
[INFO] [stdout] note: if `Tsx` implemented `Clone`, you could clone the value
[INFO] [stdout]   --> src/tree_sitter/traversal.rs:60:1
[INFO] [stdout]    |
[INFO] [stdout] 60 | struct Tsx;
[INFO] [stdout]    | ^^^^^^^^^^ consider implementing `Clone` for this type
[INFO] [stdout] ...
[INFO] [stdout] 75 |     .visit(root)
[INFO] [stdout]    |            ---- you could clone this value
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0382.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/lib.rs - (line 35) stdout ----
[INFO] [stdout] error[E0782]: expected a type, found a trait
[INFO] [stdout]   --> src/lib.rs:41:15
[INFO] [stdout]    |
[INFO] [stdout] 41 | let mut ast = Language::Tsx.ast_grep("var a = 1; var b = 2;");
[INFO] [stdout]    |               ^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: you can add the `dyn` keyword if you want a trait object
[INFO] [stdout]    |
[INFO] [stdout] 41 | let mut ast = <dyn Language>::Tsx.ast_grep("var a = 1; var b = 2;");
[INFO] [stdout]    |               ++++         +
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0782`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tree_sitter/mod.rs - tree_sitter (line 43) stdout ----
[INFO] [stdout] error[E0277]: `Tsx` doesn't implement `Debug`
[INFO] [stdout]   --> src/tree_sitter/mod.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Language for Tsx {
[INFO] [stdout]    |                   ^^^ the trait `Debug` is not implemented for `Tsx`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `Tsx` or manually `impl Debug for Tsx`
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]   --> src/language.rs:43:29
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Debug)]`
[INFO] [stdout]    |
[INFO] [stdout] 47 + #[derive(Debug)]
[INFO] [stdout] 48 | struct Tsx;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tsx: Clone` is not satisfied
[INFO] [stdout]   --> src/tree_sitter/mod.rs:48:19
[INFO] [stdout]    |
[INFO] [stdout] 48 | impl Language for Tsx {
[INFO] [stdout]    |                   ^^^ the trait `Clone` is not implemented for `Tsx`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]   --> src/language.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]    |                     ^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Clone)]`
[INFO] [stdout]    |
[INFO] [stdout] 47 + #[derive(Clone)]
[INFO] [stdout] 48 | struct Tsx;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Tsx` doesn't implement `Debug`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:53:22
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl LanguageExt for Tsx {
[INFO] [stdout]     |                      ^^^ the trait `Debug` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Tsx` or manually `impl Debug for Tsx`
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `Tsx`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/mod.rs:48:1
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Language for Tsx {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Tsx` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout]  47 + #[derive(Debug)]
[INFO] [stdout]  48 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tsx: Clone` is not satisfied
[INFO] [stdout]    --> src/tree_sitter/mod.rs:53:22
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl LanguageExt for Tsx {
[INFO] [stdout]     |                      ^^^ the trait `Clone` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `Tsx`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/mod.rs:48:1
[INFO] [stdout]     |
[INFO] [stdout]  48 | impl Language for Tsx {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Tsx` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout]  47 + #[derive(Clone)]
[INFO] [stdout]  48 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `root_node` found for struct `StrDoc<L>` in the current scope
[INFO] [stdout]    --> src/tree_sitter/mod.rs:61:16
[INFO] [stdout]     |
[INFO] [stdout]  61 | let root = doc.root_node();
[INFO] [stdout]     |                ^^^^^^^^^ method not found in `StrDoc<Tsx>`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/source.rs:238:8
[INFO] [stdout]     |
[INFO] [stdout] 238 |     fn root_node(&self) -> Self::Node<'_>;
[INFO] [stdout]     |        --------- the method is available for `StrDoc<Tsx>` here
[INFO] [stdout]     |
[INFO] [stdout]     = help: items from traits can only be used if the trait is in scope
[INFO] [stdout] help: one of the expressions' fields has a method of the same name
[INFO] [stdout]     |
[INFO] [stdout]  61 | let root = doc.tree.root_node();
[INFO] [stdout]     |                +++++
[INFO] [stdout] help: trait `Doc` which provides `root_node` is implemented but not in scope; perhaps you want to import it
[INFO] [stdout]     |
[INFO] [stdout]  42 + use crate::thread_ast_engine::Doc;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 5 previous errors
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0277, E0599.
[INFO] [stdout] For more information about an error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tree_sitter/traversal.rs - tree_sitter::traversal::Visitor (line 116) stdout ----
[INFO] [stdout] error[E0277]: `Tsx` doesn't implement `Debug`
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:122:38
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]     |                                      ^^^ the trait `Debug` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Tsx` or manually `impl Debug for Tsx`
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]    --> src/language.rs:43:29
[INFO] [stdout]     |
[INFO] [stdout]  43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 121 + #[derive(Debug)]
[INFO] [stdout] 122 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tsx: Clone` is not satisfied
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:122:38
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]     |                                      ^^^ the trait `Clone` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]    --> src/language.rs:43:21
[INFO] [stdout]     |
[INFO] [stdout]  43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]     |                     ^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 121 + #[derive(Clone)]
[INFO] [stdout] 122 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Tsx` doesn't implement `Debug`
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl LanguageExt for Tsx {
[INFO] [stdout]     |                      ^^^ the trait `Debug` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Tsx` or manually `impl Debug for Tsx`
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `Tsx`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Tsx` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout] 121 + #[derive(Debug)]
[INFO] [stdout] 122 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tsx: Clone` is not satisfied
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:127:22
[INFO] [stdout]     |
[INFO] [stdout] 127 | impl LanguageExt for Tsx {
[INFO] [stdout]     |                      ^^^ the trait `Clone` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `Tsx`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:122:1
[INFO] [stdout]     |
[INFO] [stdout] 122 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Tsx` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout] 121 + #[derive(Clone)]
[INFO] [stdout] 122 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/replacer.rs - replacer::Replacer (line 85) stdout ----
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/replacer.rs:95:9
[INFO] [stdout]    |
[INFO] [stdout] 93 |     fn generate_replacement(&self, nm: &NodeMatch<'_, D>) -> Underlying<D> {
[INFO] [stdout]    |                                                              ------------- expected `Vec<<<D as Doc>::Source as Content>::Underlying>` because of return type
[INFO] [stdout] 94 |         // Custom replacement logic here
[INFO] [stdout] 95 |         "new_code".as_bytes().to_vec()
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<<... as Content>::Underlying>`, found `Vec<u8>`
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<<<D as Doc>::Source as Content>::Underlying>`
[INFO] [stdout]               found struct `Vec<u8>`
[INFO] [stdout]    = help: consider constraining the associated type `<<D as Doc>::Source as Content>::Underlying` to `u8` or calling a method that returns `<<D as Doc>::Source as Content>::Underlying`
[INFO] [stdout]    = note: for more information, visit https://doc.rust-lang.org/book/ch19-03-advanced-traits.html
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0308`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] ---- src/tree_sitter/traversal.rs - tree_sitter::traversal (line 25) stdout ----
[INFO] [stdout] error[E0277]: `Tsx` doesn't implement `Debug`
[INFO] [stdout]   --> src/tree_sitter/traversal.rs:31:38
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]    |                                      ^^^ the trait `Debug` is not implemented for `Tsx`
[INFO] [stdout]    |
[INFO] [stdout]    = note: add `#[derive(Debug)]` to `Tsx` or manually `impl Debug for Tsx`
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]   --> src/language.rs:43:29
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Debug)]`
[INFO] [stdout]    |
[INFO] [stdout] 30 + #[derive(Debug)]
[INFO] [stdout] 31 | struct Tsx;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tsx: Clone` is not satisfied
[INFO] [stdout]   --> src/tree_sitter/traversal.rs:31:38
[INFO] [stdout]    |
[INFO] [stdout] 31 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]    |                                      ^^^ the trait `Clone` is not implemented for `Tsx`
[INFO] [stdout]    |
[INFO] [stdout] note: required by a bound in `thread_ast_engine::Language`
[INFO] [stdout]   --> src/language.rs:43:21
[INFO] [stdout]    |
[INFO] [stdout] 43 | pub trait Language: Clone + std::fmt::Debug + Send + Sync + 'static {
[INFO] [stdout]    |                     ^^^^^ required by this bound in `Language`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Clone)]`
[INFO] [stdout]    |
[INFO] [stdout] 30 + #[derive(Clone)]
[INFO] [stdout] 31 | struct Tsx;
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `Tsx` doesn't implement `Debug`
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:36:22
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl LanguageExt for Tsx {
[INFO] [stdout]     |                      ^^^ the trait `Debug` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout]     = note: add `#[derive(Debug)]` to `Tsx` or manually `impl Debug for Tsx`
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `Tsx`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Tsx` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Debug)]`
[INFO] [stdout]     |
[INFO] [stdout]  30 + #[derive(Debug)]
[INFO] [stdout]  31 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Tsx: Clone` is not satisfied
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:36:22
[INFO] [stdout]     |
[INFO] [stdout]  36 | impl LanguageExt for Tsx {
[INFO] [stdout]     |                      ^^^ the trait `Clone` is not implemented for `Tsx`
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `thread_ast_engine::Language` is not implemented for `Tsx`
[INFO] [stdout]       but trait `Language` is implemented for it
[INFO] [stdout]    --> src/tree_sitter/traversal.rs:31:1
[INFO] [stdout]     |
[INFO] [stdout]  31 | impl thread_ast_engine::Language for Tsx {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: required for `Tsx` to implement `thread_ast_engine::Language`
[INFO] [stdout] note: required by a bound in `LanguageExt`
[INFO] [stdout]    --> src/tree_sitter/mod.rs:417:24
[INFO] [stdout]     |
[INFO] [stdout] 417 | pub trait LanguageExt: Language {
[INFO] [stdout]     |                        ^^^^^^^^ required by this bound in `LanguageExt`
[INFO] [stdout] help: consider annotating `Tsx` with `#[derive(Clone)]`
[INFO] [stdout]     |
[INFO] [stdout]  30 + #[derive(Clone)]
[INFO] [stdout]  31 | struct Tsx;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 4 previous errors
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] Couldn't compile the test.
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     src/language.rs - language (line 25)
[INFO] [stdout]     src/lib.rs - (line 126)
[INFO] [stdout]     src/lib.rs - (line 147)
[INFO] [stdout]     src/lib.rs - (line 35)
[INFO] [stdout]     src/lib.rs - (line 53)
[INFO] [stdout]     src/lib.rs - (line 80)
[INFO] [stdout]     src/matcher.rs - matcher (line 31)
[INFO] [stdout]     src/matcher.rs - matcher (line 48)
[INFO] [stdout]     src/matchers/types.rs - matchers::types::MatcherExt (line 133)
[INFO] [stdout]     src/meta_var.rs - meta_var (line 20)
[INFO] [stdout]     src/node.rs - node (line 19)
[INFO] [stdout]     src/node.rs - node::Node (line 208)
[INFO] [stdout]     src/node.rs - node::Position (line 62)
[INFO] [stdout]     src/node.rs - node::Root (line 118)
[INFO] [stdout]     src/replacer.rs - replacer (line 30)
[INFO] [stdout]     src/replacer.rs - replacer (line 43)
[INFO] [stdout]     src/replacer.rs - replacer::Replacer (line 85)
[INFO] [stdout]     src/tree_sitter/mod.rs - tree_sitter (line 43)
[INFO] [stdout]     src/tree_sitter/mod.rs - tree_sitter::StrDoc (line 145)
[INFO] [stdout]     src/tree_sitter/traversal.rs - tree_sitter::traversal (line 25)
[INFO] [stdout]     src/tree_sitter/traversal.rs - tree_sitter::traversal (line 55)
[INFO] [stdout]     src/tree_sitter/traversal.rs - tree_sitter::traversal::Visitor (line 116)
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 0 passed; 22 failed; 29 ignored; 0 measured; 0 filtered out; finished in 0.81s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 1.17s; merged doctests compilation took 0.33s
[INFO] [stderr] error: doctest failed, to rerun pass `--doc`
[INFO] running `Command { std: "docker" "inspect" "3d7cfd44ddb48cd42be693dd96712378b0be0990227f68394eb543b8012f91b4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3d7cfd44ddb48cd42be693dd96712378b0be0990227f68394eb543b8012f91b4", kill_on_drop: false }`
[INFO] [stdout] 3d7cfd44ddb48cd42be693dd96712378b0be0990227f68394eb543b8012f91b4
