[INFO] fetching crate parse-js 0.20.0...
[INFO] testing parse-js-0.20.0 against beta-2023-04-20 for beta-1.70-1
[INFO] extracting crate parse-js 0.20.0 into /workspace/builds/worker-3-tc2/source
[INFO] validating manifest of crates.io crate parse-js 0.20.0 on toolchain beta-2023-04-20
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "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-3-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2023-04-20" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a5854b571bd2fe97fb37ed576346a5afa60dbf69b75a763c49a2ed3c3406079f
[INFO] running `Command { std: "docker" "start" "-a" "a5854b571bd2fe97fb37ed576346a5afa60dbf69b75a763c49a2ed3c3406079f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a5854b571bd2fe97fb37ed576346a5afa60dbf69b75a763c49a2ed3c3406079f", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a5854b571bd2fe97fb37ed576346a5afa60dbf69b75a763c49a2ed3c3406079f", kill_on_drop: false }`
[INFO] [stdout] a5854b571bd2fe97fb37ed576346a5afa60dbf69b75a763c49a2ed3c3406079f
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 3a0eb6c318a1548aa3837ee4531a814affe49b906dded64385d00009232faddd
[INFO] running `Command { std: "docker" "start" "-a" "3a0eb6c318a1548aa3837ee4531a814affe49b906dded64385d00009232faddd", kill_on_drop: false }`
[INFO] [stderr]    Compiling version_check v0.9.4
[INFO] [stderr]    Compiling memchr v2.5.0
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling once_cell v1.17.1
[INFO] [stderr]    Compiling bumpalo v3.12.1
[INFO] [stderr]    Compiling lazy_static v1.4.0
[INFO] [stderr]    Compiling ahash v0.8.3
[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: 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: 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: 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 3.13s
[INFO] running `Command { std: "docker" "inspect" "3a0eb6c318a1548aa3837ee4531a814affe49b906dded64385d00009232faddd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3a0eb6c318a1548aa3837ee4531a814affe49b906dded64385d00009232faddd", kill_on_drop: false }`
[INFO] [stdout] 3a0eb6c318a1548aa3837ee4531a814affe49b906dded64385d00009232faddd
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2023-04-20" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 63c1f75935eb871a4cf9fd7115eb6477496bdff79438baa6a6cf7bf93087c230
[INFO] running `Command { std: "docker" "start" "-a" "63c1f75935eb871a4cf9fd7115eb6477496bdff79438baa6a6cf7bf93087c230", kill_on_drop: false }`
[INFO] [stderr]    Compiling similar v2.2.1
[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: 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: 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: 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" "63c1f75935eb871a4cf9fd7115eb6477496bdff79438baa6a6cf7bf93087c230", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "63c1f75935eb871a4cf9fd7115eb6477496bdff79438baa6a6cf7bf93087c230", kill_on_drop: false }`
[INFO] [stdout] 63c1f75935eb871a4cf9fd7115eb6477496bdff79438baa6a6cf7bf93087c230
