[INFO] fetching crate parse-js 0.20.0...
[INFO] testing parse-js-0.20.0 against 1.75.0 for beta-1.76-1
[INFO] extracting crate parse-js 0.20.0 into /workspace/builds/worker-5-tc1/source
[INFO] validating manifest of crates.io crate parse-js 0.20.0 on toolchain 1.75.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate parse-js 0.20.0
[INFO] finished tweaking crates.io crate parse-js 0.20.0
[INFO] tweaked toml for crates.io crate parse-js 0.20.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.75.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6325e959970e2e869179a274f8714df48ce674a36ad5ea3a3e63be15619b3006
[INFO] running `Command { std: "docker" "start" "-a" "6325e959970e2e869179a274f8714df48ce674a36ad5ea3a3e63be15619b3006", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6325e959970e2e869179a274f8714df48ce674a36ad5ea3a3e63be15619b3006", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6325e959970e2e869179a274f8714df48ce674a36ad5ea3a3e63be15619b3006", kill_on_drop: false }`
[INFO] [stdout] 6325e959970e2e869179a274f8714df48ce674a36ad5ea3a3e63be15619b3006
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] ef9b4d9c404e1e8dc0fd5e6f395ff1bb8b654c3527c5cb12dd12e8ce3ccec417
[INFO] running `Command { std: "docker" "start" "-a" "ef9b4d9c404e1e8dc0fd5e6f395ff1bb8b654c3527c5cb12dd12e8ce3ccec417", kill_on_drop: false }`
[INFO] [stderr]    Compiling ahash v0.8.7
[INFO] [stderr]    Compiling once_cell v1.19.0
[INFO] [stderr]    Compiling zerocopy v0.7.32
[INFO] [stderr]    Compiling bumpalo v3.14.0
[INFO] [stderr]    Compiling aho-corasick v0.7.20
[INFO] [stderr]    Compiling hashbrown v0.13.2
[INFO] [stderr]    Compiling parse-js v0.20.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `super::pattern::is_valid_pattern_identifier`
[INFO] [stdout]  --> src/parse/literal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::pattern::is_valid_pattern_identifier;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ast::ClassOrObjectMemberKey`
[INFO] [stdout]  --> src/parse/literal.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ast::ClassOrObjectMemberKey;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::operator::OperatorName`
[INFO] [stdout]   --> src/visit.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::operator::OperatorName;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]   --> src/flag.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |   pub const fn from_raw(raw: u64) -> Self {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parse/stmt.rs:439:9
[INFO] [stdout]     |
[INFO] [stdout] 439 |     let mut flags = (consequent.flags | end.flags).select(NODE_FLAG_UNCONDITIONAL_FLOWS);
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/visit.rs:27:32
[INFO] [stdout]    |
[INFO] [stdout] 27 |   fn on_syntax_down(&mut self, node: &mut NodeData<'a>, ctl: &mut JourneyControls) -> () {}
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctl`
[INFO] [stdout]   --> src/visit.rs:27:57
[INFO] [stdout]    |
[INFO] [stdout] 27 |   fn on_syntax_down(&mut self, node: &mut NodeData<'a>, ctl: &mut JourneyControls) -> () {}
[INFO] [stdout]    |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_ctl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/visit.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |   fn on_syntax_up(&mut self, node: &mut NodeData<'a>) -> () {}
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `through_char` and `while_not_char` are never used
[INFO] [stdout]    --> src/lex/mod.rs:153:6
[INFO] [stdout]     |
[INFO] [stdout] 74  | impl<'a> Lexer<'a> {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |   fn through_char(&self, c: u8) -> SyntaxResult<'a, Match> {
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |   fn while_not_char(&self, a: u8) -> Match {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `MaybeToken` that must be used
[INFO] [stdout]   --> src/parse/class_or_object.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 |       self.consume_if(TokenType::Semicolon)?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 43 |       let _ = self.consume_if(TokenType::Semicolon)?;
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `MaybeToken` that must be used
[INFO] [stdout]    --> src/parse/stmt.rs:614:5
[INFO] [stdout]     |
[INFO] [stdout] 614 |     self.consume_if(TokenType::Semicolon)?;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 614 |     let _ = self.consume_if(TokenType::Semicolon)?;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 2.86s
[INFO] running `Command { std: "docker" "inspect" "ef9b4d9c404e1e8dc0fd5e6f395ff1bb8b654c3527c5cb12dd12e8ce3ccec417", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ef9b4d9c404e1e8dc0fd5e6f395ff1bb8b654c3527c5cb12dd12e8ce3ccec417", kill_on_drop: false }`
[INFO] [stdout] ef9b4d9c404e1e8dc0fd5e6f395ff1bb8b654c3527c5cb12dd12e8ce3ccec417
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-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=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:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+1.75.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f352bb42a616cf4e5b8a2a9b5be891fd97337deb7c1d7108e2081c7f313ae2ad
[INFO] running `Command { std: "docker" "start" "-a" "f352bb42a616cf4e5b8a2a9b5be891fd97337deb7c1d7108e2081c7f313ae2ad", kill_on_drop: false }`
[INFO] [stderr]    Compiling similar v2.4.0
[INFO] [stdout] warning: unused import: `super::pattern::is_valid_pattern_identifier`
[INFO] [stdout]  --> src/parse/literal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::pattern::is_valid_pattern_identifier;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ast::ClassOrObjectMemberKey`
[INFO] [stdout]  --> src/parse/literal.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ast::ClassOrObjectMemberKey;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::operator::OperatorName`
[INFO] [stdout]   --> src/visit.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::operator::OperatorName;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `raw`
[INFO] [stdout]   --> src/flag.rs:22:25
[INFO] [stdout]    |
[INFO] [stdout] 22 |   pub const fn from_raw(raw: u64) -> Self {
[INFO] [stdout]    |                         ^^^ help: if this is intentional, prefix it with an underscore: `_raw`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/parse/stmt.rs:439:9
[INFO] [stdout]     |
[INFO] [stdout] 439 |     let mut flags = (consequent.flags | end.flags).select(NODE_FLAG_UNCONDITIONAL_FLOWS);
[INFO] [stdout]     |         ----^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         help: remove this `mut`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/visit.rs:27:32
[INFO] [stdout]    |
[INFO] [stdout] 27 |   fn on_syntax_down(&mut self, node: &mut NodeData<'a>, ctl: &mut JourneyControls) -> () {}
[INFO] [stdout]    |                                ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ctl`
[INFO] [stdout]   --> src/visit.rs:27:57
[INFO] [stdout]    |
[INFO] [stdout] 27 |   fn on_syntax_down(&mut self, node: &mut NodeData<'a>, ctl: &mut JourneyControls) -> () {}
[INFO] [stdout]    |                                                         ^^^ help: if this is intentional, prefix it with an underscore: `_ctl`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `node`
[INFO] [stdout]   --> src/visit.rs:29:30
[INFO] [stdout]    |
[INFO] [stdout] 29 |   fn on_syntax_up(&mut self, node: &mut NodeData<'a>) -> () {}
[INFO] [stdout]    |                              ^^^^ help: if this is intentional, prefix it with an underscore: `_node`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `through_char` and `while_not_char` are never used
[INFO] [stdout]    --> src/lex/mod.rs:153:6
[INFO] [stdout]     |
[INFO] [stdout] 74  | impl<'a> Lexer<'a> {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 153 |   fn through_char(&self, c: u8) -> SyntaxResult<'a, Match> {
[INFO] [stdout]     |      ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |   fn while_not_char(&self, a: u8) -> Match {
[INFO] [stdout]     |      ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `MaybeToken` that must be used
[INFO] [stdout]   --> src/parse/class_or_object.rs:43:7
[INFO] [stdout]    |
[INFO] [stdout] 43 |       self.consume_if(TokenType::Semicolon)?;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 43 |       let _ = self.consume_if(TokenType::Semicolon)?;
[INFO] [stdout]    |       +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `MaybeToken` that must be used
[INFO] [stdout]    --> src/parse/stmt.rs:614:5
[INFO] [stdout]     |
[INFO] [stdout] 614 |     self.consume_if(TokenType::Semicolon)?;
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 614 |     let _ = self.consume_if(TokenType::Semicolon)?;
[INFO] [stdout]     |     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling parse-js v0.20.0 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0432]: unresolved import `serde_json`
[INFO] [stdout]  --> src/util/test.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use serde_json::to_string_pretty;
[INFO] [stdout]   |     ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde_json`
[INFO] [stdout]  --> src/util/test.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use serde_json::Value;
[INFO] [stdout]   |     ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde_json`
[INFO] [stdout]   --> src/parse/tests/expr/mod.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use serde_json::Value;
[INFO] [stdout]    |     ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `serde_json`
[INFO] [stdout]   --> src/parse/tests/stmt/mod.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | use serde_json::Value;
[INFO] [stdout]    |     ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::pattern::is_valid_pattern_identifier`
[INFO] [stdout]  --> src/parse/literal.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::pattern::is_valid_pattern_identifier;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::ast::ClassOrObjectMemberKey`
[INFO] [stdout]  --> src/parse/literal.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::ast::ClassOrObjectMemberKey;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::operator::OperatorName`
[INFO] [stdout]   --> src/visit.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 | use crate::operator::OperatorName;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `serde_json`
[INFO] [stdout]   --> src/parse/tests/expr/mod.rs:26:3
[INFO] [stdout]    |
[INFO] [stdout] 26 |   serde_json::to_value(&node).unwrap()
[INFO] [stdout]    |   ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `serde_json`
[INFO] [stdout]   --> src/parse/tests/stmt/mod.rs:25:3
[INFO] [stdout]    |
[INFO] [stdout] 25 |   serde_json::to_value(&node).unwrap()
[INFO] [stdout]    |   ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of undeclared crate or module `serde_json`
[INFO] [stdout]   --> src/util/test.rs:26:33
[INFO] [stdout]    |
[INFO] [stdout] 26 |           let expected: Value = serde_json::from_reader(
[INFO] [stdout]    |                                 ^^^^^^^^^^ use of undeclared crate or module `serde_json`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 7 previous errors; 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `parse-js` (lib test) due to 8 previous errors; 3 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f352bb42a616cf4e5b8a2a9b5be891fd97337deb7c1d7108e2081c7f313ae2ad", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f352bb42a616cf4e5b8a2a9b5be891fd97337deb7c1d7108e2081c7f313ae2ad", kill_on_drop: false }`
[INFO] [stdout] f352bb42a616cf4e5b8a2a9b5be891fd97337deb7c1d7108e2081c7f313ae2ad
