[INFO] fetching crate ohos-nj-derive 3.4.2... [INFO] checking ohos-nj-derive-3.4.2 against try#998b6603a58e47f42ccce7a67943234e96b6839e for pr-143170 [INFO] extracting crate ohos-nj-derive 3.4.2 into /workspace/builds/worker-0-tc2/source [INFO] started tweaking crates.io crate ohos-nj-derive 3.4.2 [INFO] finished tweaking crates.io crate ohos-nj-derive 3.4.2 [INFO] tweaked toml for crates.io crate ohos-nj-derive 3.4.2 written to /workspace/builds/worker-0-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate ohos-nj-derive 3.4.2 on toolchain 998b6603a58e47f42ccce7a67943234e96b6839e [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "generate-lockfile" "--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] Blocking waiting for file lock on package cache [INFO] [stderr] Locking 103 packages to latest compatible versions [INFO] [stderr] Adding fluvio-future v0.6.2 (available: v0.8.2) [INFO] [stderr] Adding syn v1.0.109 (available: v2.0.104) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] ee14a035072acf5bbab728ec380e6f82f0248b1cfdfa0c65700eefb72301fc1e [INFO] running `Command { std: "docker" "start" "-a" "ee14a035072acf5bbab728ec380e6f82f0248b1cfdfa0c65700eefb72301fc1e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "ee14a035072acf5bbab728ec380e6f82f0248b1cfdfa0c65700eefb72301fc1e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "ee14a035072acf5bbab728ec380e6f82f0248b1cfdfa0c65700eefb72301fc1e", kill_on_drop: false }` [INFO] [stdout] ee14a035072acf5bbab728ec380e6f82f0248b1cfdfa0c65700eefb72301fc1e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-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=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:90999bfc7ae267e83380e433d8e61a7c072ca6729e92edbae886d3423b3a6f4c" "/opt/rustwide/cargo-home/bin/cargo" "+998b6603a58e47f42ccce7a67943234e96b6839e" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 30086c06fe430e6689034e44a09fe8d39d9e3dcb6a63c76cc91dc235ad6b100e [INFO] running `Command { std: "docker" "start" "-a" "30086c06fe430e6689034e44a09fe8d39d9e3dcb6a63c76cc91dc235ad6b100e", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.95 [INFO] [stderr] Compiling io-lifetimes v1.0.11 [INFO] [stderr] Compiling crossbeam-utils v0.8.21 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling rustix v0.37.28 [INFO] [stderr] Checking unicode-ident v1.0.18 [INFO] [stderr] Compiling memchr v2.7.5 [INFO] [stderr] Checking regex-syntax v0.8.5 [INFO] [stderr] Checking futures-io v0.3.31 [INFO] [stderr] Checking parking v2.2.1 [INFO] [stderr] Checking futures-core v0.3.31 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Compiling polling v2.8.0 [INFO] [stderr] Compiling async-io v1.13.0 [INFO] [stderr] Checking linux-raw-sys v0.3.8 [INFO] [stderr] Checking fastrand v1.9.0 [INFO] [stderr] Checking log v0.4.27 [INFO] [stderr] Compiling thiserror v1.0.69 [INFO] [stderr] Checking event-listener v2.5.3 [INFO] [stderr] Checking waker-fn v1.2.0 [INFO] [stderr] Checking async-lock v2.8.0 [INFO] [stderr] Checking futures-lite v1.13.0 [INFO] [stderr] Compiling quote v1.0.40 [INFO] [stderr] Checking socket2 v0.4.10 [INFO] [stderr] Checking lazy_static v1.5.0 [INFO] [stderr] Compiling syn v2.0.104 [INFO] [stderr] Checking concurrent-queue v2.5.0 [INFO] [stderr] Checking regex-automata v0.4.9 [INFO] [stderr] Checking regex v1.11.1 [INFO] [stderr] Checking Inflector v0.11.4 [INFO] [stderr] Checking ohos-nj-derive v3.4.2 (/opt/rustwide/workdir) [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | Getter(Ident), [INFO] [stdout] | ------ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 23 - Getter(Ident), [INFO] [stdout] 23 + Getter(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | Setter(Ident), [INFO] [stdout] | ------ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - Setter(Ident), [INFO] [stdout] 24 + Setter(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:25:17 [INFO] [stdout] | [INFO] [stdout] 25 | Constructor(Ident), [INFO] [stdout] | ----------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 25 - Constructor(Ident), [INFO] [stdout] 25 + Constructor(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | Mt(Ident), [INFO] [stdout] | -- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 27 - Mt(Ident), [INFO] [stdout] 27 + Mt(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `arg_index` is never read [INFO] [stdout] --> src/ast/arg.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct FunctionArg<'a> { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 78 | pub arg_index: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FunctionArg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `FunctionItem` is never used [INFO] [stdout] --> src/ast/util.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait FunctionItem { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/types.rs:181:10 [INFO] [stdout] | [INFO] [stdout] 181 | Path(MyTypePath<'a>), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MyFieldType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 181 - Path(MyTypePath<'a>), [INFO] [stdout] 181 + Path(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/types.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | Ref(MyReferenceType<'a>), [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MyFieldType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 182 - Ref(MyReferenceType<'a>), [INFO] [stdout] 182 + Ref(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/arg.rs:60:18 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn inner(&self) -> &Vec { [INFO] [stdout] | ^^^^^ ----------------- [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 60 | pub fn inner(&self) -> &Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/arg.rs:199:20 [INFO] [stdout] | [INFO] [stdout] 199 | fn find_inputs(ty: &ParenthesizedGenericArguments) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 199 | fn find_inputs(ty: &ParenthesizedGenericArguments) -> Result>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/class.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn constructor(&'a self) -> Option<&'a Method> { [INFO] [stdout] | ^^ -- ------ the lifetimes get resolved as `'a` [INFO] [stdout] | | | [INFO] [stdout] | | the lifetimes get resolved as `'a` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 45 | pub fn constructor(&'a self) -> Option<&'a Method<'a>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/class.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn my_type(&'a self) -> &MyTypePath<'a> { [INFO] [stdout] | ^^ --------------- [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'a` [INFO] [stdout] | | the lifetimes get resolved as `'a` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 51 | pub fn my_type(&'a self) -> &'a MyTypePath<'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:127:29 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn from_ast(input: &'a DeriveInput) -> Result { [INFO] [stdout] | ^^ ------------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 127 | pub fn from_ast(input: &'a DeriveInput) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn from_ast(input: &'a Fields) -> Result { [INFO] [stdout] | ^^ -------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 186 | pub fn from_ast(input: &'a Fields) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:218:22 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn from(ty: &'a Type) -> Result { [INFO] [stdout] | ^^ ----------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 218 | pub fn from(ty: &'a Type) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:237:33 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn from_ast(enum_data: &'a DataEnum) -> Result { [INFO] [stdout] | ^^ ------ the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 237 | pub fn from_ast(enum_data: &'a DataEnum) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:255:36 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn from_ast(variant_data: &'a Variant) -> Result { [INFO] [stdout] | ^^ --------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 255 | pub fn from_ast(variant_data: &'a Variant) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:271:35 [INFO] [stdout] | [INFO] [stdout] 271 | pub fn from_ast(struct_data: &'a DataStruct) -> Result { [INFO] [stdout] | ^^ -------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 271 | pub fn from_ast(struct_data: &'a DataStruct) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling tracing-attributes v0.1.30 [INFO] [stderr] Compiling pin-project-internal v1.1.10 [INFO] [stderr] Compiling thiserror-impl v1.0.69 [INFO] [stderr] Checking tracing v0.1.41 [INFO] [stderr] Checking pin-project v1.1.10 [INFO] [stderr] Checking fluvio-future v0.6.2 [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | Getter(Ident), [INFO] [stdout] | ------ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 23 - Getter(Ident), [INFO] [stdout] 23 + Getter(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | Setter(Ident), [INFO] [stdout] | ------ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - Setter(Ident), [INFO] [stdout] 24 + Setter(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:25:17 [INFO] [stdout] | [INFO] [stdout] 25 | Constructor(Ident), [INFO] [stdout] | ----------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 25 - Constructor(Ident), [INFO] [stdout] 25 + Constructor(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | Mt(Ident), [INFO] [stdout] | -- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 27 - Mt(Ident), [INFO] [stdout] 27 + Mt(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `arg_index` is never read [INFO] [stdout] --> src/ast/arg.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct FunctionArg<'a> { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 78 | pub arg_index: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FunctionArg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `FunctionItem` is never used [INFO] [stdout] --> src/ast/util.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait FunctionItem { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/types.rs:181:10 [INFO] [stdout] | [INFO] [stdout] 181 | Path(MyTypePath<'a>), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MyFieldType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 181 - Path(MyTypePath<'a>), [INFO] [stdout] 181 + Path(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/types.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | Ref(MyReferenceType<'a>), [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MyFieldType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 182 - Ref(MyReferenceType<'a>), [INFO] [stdout] 182 + Ref(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/arg.rs:60:18 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn inner(&self) -> &Vec { [INFO] [stdout] | ^^^^^ ----------------- [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 60 | pub fn inner(&self) -> &Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/arg.rs:199:20 [INFO] [stdout] | [INFO] [stdout] 199 | fn find_inputs(ty: &ParenthesizedGenericArguments) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 199 | fn find_inputs(ty: &ParenthesizedGenericArguments) -> Result>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/class.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn constructor(&'a self) -> Option<&'a Method> { [INFO] [stdout] | ^^ -- ------ the lifetimes get resolved as `'a` [INFO] [stdout] | | | [INFO] [stdout] | | the lifetimes get resolved as `'a` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 45 | pub fn constructor(&'a self) -> Option<&'a Method<'a>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/class.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn my_type(&'a self) -> &MyTypePath<'a> { [INFO] [stdout] | ^^ --------------- [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'a` [INFO] [stdout] | | the lifetimes get resolved as `'a` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 51 | pub fn my_type(&'a self) -> &'a MyTypePath<'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:127:29 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn from_ast(input: &'a DeriveInput) -> Result { [INFO] [stdout] | ^^ ------------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 127 | pub fn from_ast(input: &'a DeriveInput) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn from_ast(input: &'a Fields) -> Result { [INFO] [stdout] | ^^ -------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 186 | pub fn from_ast(input: &'a Fields) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:218:22 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn from(ty: &'a Type) -> Result { [INFO] [stdout] | ^^ ----------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 218 | pub fn from(ty: &'a Type) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:237:33 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn from_ast(enum_data: &'a DataEnum) -> Result { [INFO] [stdout] | ^^ ------ the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 237 | pub fn from_ast(enum_data: &'a DataEnum) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:255:36 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn from_ast(variant_data: &'a Variant) -> Result { [INFO] [stdout] | ^^ --------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 255 | pub fn from_ast(variant_data: &'a Variant) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:271:35 [INFO] [stdout] | [INFO] [stdout] 271 | pub fn from_ast(struct_data: &'a DataStruct) -> Result { [INFO] [stdout] | ^^ -------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 271 | pub fn from_ast(struct_data: &'a DataStruct) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:23:12 [INFO] [stdout] | [INFO] [stdout] 23 | Getter(Ident), [INFO] [stdout] | ------ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 23 - Getter(Ident), [INFO] [stdout] 23 + Getter(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:24:12 [INFO] [stdout] | [INFO] [stdout] 24 | Setter(Ident), [INFO] [stdout] | ------ ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 24 - Setter(Ident), [INFO] [stdout] 24 + Setter(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:25:17 [INFO] [stdout] | [INFO] [stdout] 25 | Constructor(Ident), [INFO] [stdout] | ----------- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 25 - Constructor(Ident), [INFO] [stdout] 25 + Constructor(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/attribute.rs:27:8 [INFO] [stdout] | [INFO] [stdout] 27 | Mt(Ident), [INFO] [stdout] | -- ^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `FunctionAttribute` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 27 - Mt(Ident), [INFO] [stdout] 27 + Mt(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `arg_index` is never read [INFO] [stdout] --> src/ast/arg.rs:78:9 [INFO] [stdout] | [INFO] [stdout] 77 | pub struct FunctionArg<'a> { [INFO] [stdout] | ----------- field in this struct [INFO] [stdout] 78 | pub arg_index: u32, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `FunctionArg` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait `FunctionItem` is never used [INFO] [stdout] --> src/ast/util.rs:11:11 [INFO] [stdout] | [INFO] [stdout] 11 | pub trait FunctionItem { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/types.rs:181:10 [INFO] [stdout] | [INFO] [stdout] 181 | Path(MyTypePath<'a>), [INFO] [stdout] | ---- ^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MyFieldType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 181 - Path(MyTypePath<'a>), [INFO] [stdout] 181 + Path(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `0` is never read [INFO] [stdout] --> src/ast/types.rs:182:9 [INFO] [stdout] | [INFO] [stdout] 182 | Ref(MyReferenceType<'a>), [INFO] [stdout] | --- ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | field in this variant [INFO] [stdout] | [INFO] [stdout] = note: `MyFieldType` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field [INFO] [stdout] | [INFO] [stdout] 182 - Ref(MyReferenceType<'a>), [INFO] [stdout] 182 + Ref(()), [INFO] [stdout] | [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/arg.rs:60:18 [INFO] [stdout] | [INFO] [stdout] 60 | pub fn inner(&self) -> &Vec { [INFO] [stdout] | ^^^^^ ----------------- [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'_` [INFO] [stdout] | | the lifetimes get resolved as `'_` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 60 | pub fn inner(&self) -> &Vec> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/arg.rs:199:20 [INFO] [stdout] | [INFO] [stdout] 199 | fn find_inputs(ty: &ParenthesizedGenericArguments) -> Result> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ---------- the lifetime gets resolved as `'_` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to remove the lifetime for references and use the anonymous lifetime for paths [INFO] [stdout] | [INFO] [stdout] 199 | fn find_inputs(ty: &ParenthesizedGenericArguments) -> Result>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/class.rs:45:25 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn constructor(&'a self) -> Option<&'a Method> { [INFO] [stdout] | ^^ -- ------ the lifetimes get resolved as `'a` [INFO] [stdout] | | | [INFO] [stdout] | | the lifetimes get resolved as `'a` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 45 | pub fn constructor(&'a self) -> Option<&'a Method<'a>> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/class.rs:51:21 [INFO] [stdout] | [INFO] [stdout] 51 | pub fn my_type(&'a self) -> &MyTypePath<'a> { [INFO] [stdout] | ^^ --------------- [INFO] [stdout] | | | | [INFO] [stdout] | | | the lifetimes get resolved as `'a` [INFO] [stdout] | | the lifetimes get resolved as `'a` [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 51 | pub fn my_type(&'a self) -> &'a MyTypePath<'a> { [INFO] [stdout] | ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:127:29 [INFO] [stdout] | [INFO] [stdout] 127 | pub fn from_ast(input: &'a DeriveInput) -> Result { [INFO] [stdout] | ^^ ------------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 127 | pub fn from_ast(input: &'a DeriveInput) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:186:29 [INFO] [stdout] | [INFO] [stdout] 186 | pub fn from_ast(input: &'a Fields) -> Result { [INFO] [stdout] | ^^ -------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 186 | pub fn from_ast(input: &'a Fields) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:218:22 [INFO] [stdout] | [INFO] [stdout] 218 | pub fn from(ty: &'a Type) -> Result { [INFO] [stdout] | ^^ ----------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 218 | pub fn from(ty: &'a Type) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:237:33 [INFO] [stdout] | [INFO] [stdout] 237 | pub fn from_ast(enum_data: &'a DataEnum) -> Result { [INFO] [stdout] | ^^ ------ the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 237 | pub fn from_ast(enum_data: &'a DataEnum) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:255:36 [INFO] [stdout] | [INFO] [stdout] 255 | pub fn from_ast(variant_data: &'a Variant) -> Result { [INFO] [stdout] | ^^ --------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 255 | pub fn from_ast(variant_data: &'a Variant) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/ast/types.rs:271:35 [INFO] [stdout] | [INFO] [stdout] 271 | pub fn from_ast(struct_data: &'a DataStruct) -> Result { [INFO] [stdout] | ^^ -------- the lifetime gets resolved as `'a` [INFO] [stdout] | | [INFO] [stdout] | this lifetime flows to the output [INFO] [stdout] | [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 271 | pub fn from_ast(struct_data: &'a DataStruct) -> Result> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `trybuild` [INFO] [stdout] --> tests/parse.rs:3:13 [INFO] [stdout] | [INFO] [stdout] 3 | let t = trybuild::TestCases::check_only(); [INFO] [stdout] | ^^^^^^^^ use of unresolved module or unlinked crate `trybuild` [INFO] [stdout] | [INFO] [stdout] = help: if you wanted to use a crate named `trybuild`, use `cargo add trybuild` to add it to your `Cargo.toml` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] For more information about this error, try `rustc --explain E0433`. [INFO] [stdout] [INFO] [stderr] error: could not compile `ohos-nj-derive` (test "parse") due to 1 previous error [INFO] running `Command { std: "docker" "inspect" "30086c06fe430e6689034e44a09fe8d39d9e3dcb6a63c76cc91dc235ad6b100e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "30086c06fe430e6689034e44a09fe8d39d9e3dcb6a63c76cc91dc235ad6b100e", kill_on_drop: false }` [INFO] [stdout] 30086c06fe430e6689034e44a09fe8d39d9e3dcb6a63c76cc91dc235ad6b100e