[INFO] fetching crate thread-ast-engine 0.1.1... [INFO] testing thread-ast-engine-0.1.1 against master#562dee4820c458d823175268e41601d4c060588a for pr-154210-2 [INFO] extracting crate thread-ast-engine 0.1.1 into /workspace/builds/worker-6-tc1/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-6-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate thread-ast-engine 0.1.1 on toolchain 562dee4820c458d823175268e41601d4c060588a [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+562dee4820c458d823175268e41601d4c060588a" "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" "+562dee4820c458d823175268e41601d4c060588a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tree-sitter-language v0.1.7 [INFO] [stderr] Downloaded rapidhash v4.4.1 [INFO] [stderr] Downloaded streaming-iterator v0.1.9 [INFO] [stderr] Downloaded wasm-bindgen-macro v0.2.113 [INFO] [stderr] Downloaded thread-utilities v0.1.3 [INFO] [stderr] Downloaded wasm-bindgen-shared v0.2.113 [INFO] [stderr] Downloaded wasm-bindgen-macro-support v0.2.113 [INFO] [stderr] Downloaded simdeez v2.0.0 [INFO] [stderr] Downloaded wasm-bindgen v0.2.113 [INFO] [stderr] Downloaded js-sys v0.3.90 [INFO] [stderr] Downloaded tree-sitter v0.25.10 [INFO] [stderr] Downloaded web-sys v0.3.90 [INFO] [stderr] Downloaded tree-sitter-typescript v0.23.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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" "+562dee4820c458d823175268e41601d4c060588a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 89718cb54c1b972f5b9978253cff4b98bfc8bca39fbcd4942e10c9b041a0daae [INFO] running `Command { std: "docker" "start" "-a" "89718cb54c1b972f5b9978253cff4b98bfc8bca39fbcd4942e10c9b041a0daae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "89718cb54c1b972f5b9978253cff4b98bfc8bca39fbcd4942e10c9b041a0daae", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "89718cb54c1b972f5b9978253cff4b98bfc8bca39fbcd4942e10c9b041a0daae", kill_on_drop: false }` [INFO] [stdout] 89718cb54c1b972f5b9978253cff4b98bfc8bca39fbcd4942e10c9b041a0daae [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3c3d71da6f5f23f31c1bc8c486ddd276c5014afbf8ee14afd49cd359f3772214 [INFO] running `Command { std: "docker" "start" "-a" "3c3d71da6f5f23f31c1bc8c486ddd276c5014afbf8ee14afd49cd359f3772214", kill_on_drop: false }` [INFO] [stderr] Compiling serde_core v1.0.228 [INFO] [stderr] Compiling hashbrown v0.16.1 [INFO] [stderr] Compiling itoa v1.0.17 [INFO] [stderr] Compiling tree-sitter-language v0.1.7 [INFO] [stderr] Compiling paste v1.0.15 [INFO] [stderr] Compiling cc v1.2.56 [INFO] [stderr] Compiling zmij v1.0.21 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling bit-vec v0.8.0 [INFO] [stderr] Compiling streaming-iterator v0.1.9 [INFO] [stderr] Compiling quote v1.0.44 [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 simdeez v2.0.0 [INFO] [stderr] Compiling indexmap v2.13.0 [INFO] [stderr] Compiling libmimalloc-sys v0.1.44 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling mimalloc v0.1.48 [INFO] [stderr] Compiling thread-utilities v0.1.3 [INFO] [stderr] Compiling tree-sitter v0.25.10 [INFO] [stderr] Compiling thread-ast-engine v0.1.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.21s [INFO] running `Command { std: "docker" "inspect" "3c3d71da6f5f23f31c1bc8c486ddd276c5014afbf8ee14afd49cd359f3772214", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3c3d71da6f5f23f31c1bc8c486ddd276c5014afbf8ee14afd49cd359f3772214", kill_on_drop: false }` [INFO] [stdout] 3c3d71da6f5f23f31c1bc8c486ddd276c5014afbf8ee14afd49cd359f3772214 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2f0d22393972a155c23898a51df909288edf23d8291d37c77a0aa439783a6a04 [INFO] running `Command { std: "docker" "start" "-a" "2f0d22393972a155c23898a51df909288edf23d8291d37c77a0aa439783a6a04", 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 ciborium-io v0.2.2 [INFO] [stderr] Compiling plotters-backend v0.3.7 [INFO] [stderr] Compiling tree-sitter-typescript v0.23.2 [INFO] [stderr] Compiling clap_builder v4.5.60 [INFO] [stderr] Compiling cast v0.3.0 [INFO] [stderr] Compiling rayon v1.11.0 [INFO] [stderr] Compiling page_size v0.6.0 [INFO] [stderr] Compiling oorandom v11.1.5 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling criterion-plot v0.8.2 [INFO] [stderr] Compiling plotters-svg v0.3.7 [INFO] [stderr] Compiling plotters v0.3.7 [INFO] [stderr] Compiling tree-sitter v0.25.10 [INFO] [stderr] Compiling clap v4.5.60 [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 28.19s [INFO] running `Command { std: "docker" "inspect" "2f0d22393972a155c23898a51df909288edf23d8291d37c77a0aa439783a6a04", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2f0d22393972a155c23898a51df909288edf23d8291d37c77a0aa439783a6a04", kill_on_drop: false }` [INFO] [stdout] 2f0d22393972a155c23898a51df909288edf23d8291d37c77a0aa439783a6a04 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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" "+562dee4820c458d823175268e41601d4c060588a" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 28b8bd0fadf4eee73e28b1f180f5cac8b3c56f37f93de98e102ecf8dd204543a [INFO] running `Command { std: "docker" "start" "-a" "28b8bd0fadf4eee73e28b1f180f5cac8b3c56f37f93de98e102ecf8dd204543a", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/thread_ast_engine-3c59fc00706eb8d8) [INFO] [stdout] [INFO] [stdout] running 146 tests [INFO] [stdout] test match_tree::test::test_ellipsis_end ... ok [INFO] [stdout] test match_tree::match_node::test::test_cst_match ... ok [INFO] [stdout] test match_tree::test::test_gh_1087 ... ok [INFO] [stdout] test match_tree::match_node::test::test_relaxed_match ... ok [INFO] [stdout] test match_tree::test::test_nested_match ... ok [INFO] [stdout] test match_tree::test::test_meta_var_multiple_occurrence ... ok [INFO] [stdout] test match_tree::test::test_match_inner ... ok [INFO] [stdout] test match_tree::test::test_named_ellipsis ... ok [INFO] [stdout] test match_tree::test::test_meta_var_named ... ok [INFO] [stdout] test match_tree::test::test_leading_ellipsis ... 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::match_node::test::test_ast_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 matcher::test::test_node_env ... ok [INFO] [stdout] test matcher::test::test_node_match_as_node ... ok [INFO] [stdout] test match_tree::test::test_trivia_in_pattern ... ok [INFO] [stdout] test matcher::test::test_replace_by ... ok [INFO] [stdout] test matchers::kind::test::test_kind_match ... ok [INFO] [stdout] test match_tree::test::test_trailing_ellipsis ... ok [INFO] [stdout] test matchers::kind::test::test_kind_non_match ... 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_pattern ... ok [INFO] [stdout] test matchers::pattern::test::test_contextual_pattern_vars ... ok [INFO] [stdout] test matchers::pattern::test::test_contextual_unmatch_with_env ... 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_debug_pattern ... ok [INFO] [stdout] test matchers::pattern::test::test_error_kind ... ok [INFO] [stdout] test matchers::pattern::test::test_extract_complex_meta_var ... ok [INFO] [stdout] test matchers::pattern::test::test_contextual_match_with_env ... ok [INFO] [stdout] test matchers::pattern::test::test_extract_duplicate_meta_var ... ok [INFO] [stdout] test matchers::pattern::test::test_class_assignment ... ok [INFO] [stdout] test matchers::pattern::test::test_extract_meta_var_from_pattern ... 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_gh_1087 ... ok [INFO] [stdout] test matchers::pattern::test::test_meta_variable ... ok [INFO] [stdout] test matchers::pattern::test::test_match_non_atomic ... ok [INFO] [stdout] test matchers::pattern::test::test_pattern_error ... ok [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_pattern_should_not_pollute_env ... 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_with_non_root_meta_var ... 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_match_constraints ... ok [INFO] [stdout] test meta_var::test::test_not_meta_var ... ok [INFO] [stdout] test node::test::test_ascii_pos ... ok [INFO] [stdout] test node::test::precedes ... ok [INFO] [stdout] test node::test::test_child_by_field_id ... ok [INFO] [stdout] test matchers::pattern::test::test_meta_variable_env ... ok [INFO] [stdout] test meta_var::test::test_multi_var_match_with_trailing ... ok [INFO] [stdout] test meta_var::test::test_multi_var_match ... ok [INFO] [stdout] test meta_var::test::test_non_ascii_meta_var ... ok [INFO] [stdout] test node::test::test_field_children ... ok [INFO] [stdout] test node::test::test_has ... ok [INFO] [stdout] test node::test::test_inside ... ok [INFO] [stdout] test node::test::test_is_leaf ... ok [INFO] [stdout] test node::test::test_multi_line_context ... ok [INFO] [stdout] test node::test::test_replace_all_multiple_sorted ... ok [INFO] [stdout] test node::test::test_replace_all_nested ... ok [INFO] [stdout] test node::test::test_empty ... ok [INFO] [stdout] test node::test::test_field ... ok [INFO] [stdout] test node::test::test_children ... ok [INFO] [stdout] test matchers::pattern::test::test_whitespace ... ok [INFO] [stdout] test meta_var::test::test_match_not_constraints ... ok [INFO] [stdout] test node::test::test_display_context ... ok [INFO] [stdout] test node::test::test_unicode_pos ... ok [INFO] [stdout] test ops::test::test_all_kinds ... ok [INFO] [stdout] test ops::test::test_and ... ok [INFO] [stdout] test ops::test::test_and_kinds ... ok [INFO] [stdout] test ops::test::test_any_kinds ... ok [INFO] [stdout] test ops::test::test_api_and ... ok [INFO] [stdout] test ops::test::test_multiple_match_order ... ok [INFO] [stdout] test ops::test::test_multiple_match ... ok [INFO] [stdout] test ops::test::test_or ... ok [INFO] [stdout] test pinned::test::test_node_match ... ignored, not yet implemented [INFO] [stdout] test replacer::indent::test::test_first_line_indent_deindent ... ok [INFO] [stdout] test ops::test::test_api_or ... ok [INFO] [stdout] test pinned::test::test_borrow ... ok [INFO] [stdout] test ops::test::test_not ... ok [INFO] [stdout] test ops::test::test_or_kinds ... ok [INFO] [stdout] test ops::test::test_or_revert_env ... ok [INFO] [stdout] test pinned::test::test_vec_node ... ok [INFO] [stdout] test node::test::test_remove ... ok [INFO] [stdout] test replacer::indent::test::test_indent_replace ... ok [INFO] [stdout] test replacer::indent::test::test_leading_text_indent_replace ... 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_simple_replace ... ok [INFO] [stdout] test replacer::structural::test::test_multi_ellipsis ... ok [INFO] [stdout] test replacer::structural::test::test_nested_matching_replace ... ok [INFO] [stdout] test replacer::structural::test::test_ellipsis_meta_var ... ok [INFO] [stdout] test replacer::indent::test::test_space_in_middle_deindent ... ok [INFO] [stdout] test replacer::structural::test::test_replace_in_string ... ok [INFO] [stdout] test replacer::template::test::test_ellipsis_meta_var ... ok [INFO] [stdout] test replacer::structural::test::test_no_env ... ok [INFO] [stdout] test replacer::structural::test::test_single_env ... ok [INFO] [stdout] test replacer::template::test::test_multi_ellipsis ... ok [INFO] [stdout] test replacer::indent::test::test_middle_deindent ... ok [INFO] [stdout] test ops::test::test_any_revert_env ... ok [INFO] [stdout] test replacer::template::test::test_multiple_env ... ok [INFO] [stdout] test replacer::structural::test::test_multiple_env ... ok [INFO] [stdout] test ops::test::test_all_revert_env ... ok [INFO] [stdout] test replacer::template::test::test_multiple_occurrences ... ok [INFO] [stdout] test replacer::indent::test::test_nested_deindent ... ok [INFO] [stdout] test replacer::indent::test::test_no_deindent ... ok [INFO] [stdout] test replacer::template::test::test_multi_row_replace ... ok [INFO] [stdout] test replacer::template::test::test_example ... ok [INFO] [stdout] test replacer::template::test::test_nested_matching_replace ... ok [INFO] [stdout] test replacer::template::test::test_no_env ... ok [INFO] [stdout] test replacer::template::test::test_replace_in_string ... ok [INFO] [stdout] test replacer::template::test::test_replace_rewriter ... ok [INFO] [stdout] test test::test_replace ... ok [INFO] [stdout] test tree_sitter::test::test_object_literal ... ok [INFO] [stdout] test test::test_replace_trivia ... ok [INFO] [stdout] test tree_sitter::test::test_row_col ... ok [INFO] [stdout] test replacer::template::test::test_template_vars ... ok [INFO] [stdout] test test::test_replace_by_rule ... ok [INFO] [stdout] test replacer::template::test::test_template ... ok [INFO] [stdout] test test::test_replace_trivia_with_skipped ... ok [INFO] [stdout] test test::test_replace_unnamed_node ... ok [INFO] [stdout] test tree_sitter::test::test_edit ... ok [INFO] [stdout] test replacer::indent::test::test_simple_deindent ... ok [INFO] [stdout] test replacer::indent::test::test_leading_text_replace ... ok [INFO] [stdout] test replacer::structural::test::test_multiple_occurrences ... ok [INFO] [stdout] test tree_sitter::test::test_string ... 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 tree_sitter::traversal::test::test_post_order_visitor ... ok [INFO] [stdout] test tree_sitter::traversal::test::tes_pre_order ... ok [INFO] [stdout] test tree_sitter::traversal::test::test_different_order ... 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 tree_sitter::traversal::test::test_fused_traversal ... ok [INFO] [stdout] test match_tree::match_node::test::test_signature_match ... ok [INFO] [stdout] test node::test::follows ... ok [INFO] [stdout] test replacer::template::test::test_single_env ... ok [INFO] [stdout] test tree_sitter::traversal::test::test_pre_order_visitor ... 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 126) - compile ... FAILED [INFO] [stdout] test src/matcher.rs - matcher (line 31) - 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/lib.rs - (line 147) - 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 (line 19) - compile ... FAILED [INFO] [stdout] test src/tree_sitter/mod.rs - tree_sitter (line 43) - compile ... FAILED [INFO] [stdout] test src/lib.rs - (line 35) - compile ... FAILED [INFO] [stdout] test src/node.rs - node::Root (line 118) - compile ... FAILED [INFO] [stdout] test src/replacer.rs - replacer (line 43) - compile ... FAILED [INFO] [stdout] test src/node.rs - node::Node (line 208) - compile ... FAILED [INFO] [stdout] test src/language.rs - language (line 25) - compile ... FAILED [INFO] [stdout] test src/matcher.rs - matcher (line 48) - compile ... FAILED [INFO] [stdout] test src/node.rs - node::Position (line 62) - compile ... FAILED [INFO] [stdout] test src/matchers/types.rs - matchers::types::MatcherExt (line 133) - compile ... FAILED [INFO] [stdout] test src/replacer.rs - replacer (line 30) - compile ... FAILED [INFO] [stdout] test src/tree_sitter/traversal.rs - tree_sitter::traversal (line 55) - compile ... FAILED [INFO] [stdout] test src/lib.rs - (line 80) - compile ... FAILED [INFO] [stdout] test src/meta_var.rs - meta_var (line 20) - compile ... FAILED [INFO] [stdout] test src/lib.rs - (line 53) - compile ... FAILED [INFO] [stdout] test src/tree_sitter/mod.rs - tree_sitter::StrDoc (line 145) - 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] test src/tree_sitter/traversal.rs - tree_sitter::traversal::Visitor (line 116) - compile ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [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 = ::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/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 = ::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/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 = ::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/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 = ::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/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` 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` [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` 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/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 = ::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/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 = ::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/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 = ::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 = ::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/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 = ::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/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/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 = ::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/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 = ::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/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] [stderr] error: doctest failed, to rerun pass `--doc` [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 = ::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 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 = ::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/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>`, 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 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 = ::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/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 { [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 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 = ::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/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` 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` [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` 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/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 { [INFO] [stdout] | ------------- expected `Vec<<::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` [INFO] [stdout] | [INFO] [stdout] = note: expected struct `Vec<<::Source as Content>::Underlying>` [INFO] [stdout] found struct `Vec` [INFO] [stdout] = help: consider constraining the associated type `<::Source as Content>::Underlying` to `u8` or calling a method that returns `<::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] ---- 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] [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.73s [INFO] [stdout] [INFO] [stdout] all doctests ran in 1.10s; merged doctests compilation took 0.36s [INFO] running `Command { std: "docker" "inspect" "28b8bd0fadf4eee73e28b1f180f5cac8b3c56f37f93de98e102ecf8dd204543a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "28b8bd0fadf4eee73e28b1f180f5cac8b3c56f37f93de98e102ecf8dd204543a", kill_on_drop: false }` [INFO] [stdout] 28b8bd0fadf4eee73e28b1f180f5cac8b3c56f37f93de98e102ecf8dd204543a