[INFO] cloning repository https://github.com/ShuoYang512/lydia [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ShuoYang512/lydia" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShuoYang512%2Flydia", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShuoYang512%2Flydia'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 0e5de0ba2501cb33d8516fd1ce1475cd0d162573 [INFO] testing ShuoYang512/lydia against master#733b47ea4b1b86216f14ef56e49440c33933f230+rustflags=-Copt-level=3 for pr-138759 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FShuoYang512%2Flydia" "/workspace/builds/worker-3-tc2/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-3-tc2/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/ShuoYang512/lydia [INFO] finished tweaking git repo https://github.com/ShuoYang512/lydia [INFO] tweaked toml for git repo https://github.com/ShuoYang512/lydia written to /workspace/builds/worker-3-tc2/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/ShuoYang512/lydia on toolchain 733b47ea4b1b86216f14ef56e49440c33933f230 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/ShuoYang512/lydia 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" "+733b47ea4b1b86216f14ef56e49440c33933f230" "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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e533b6e8c29da85176e1931736a895d8ab1a55f7305058b3e5d68c49fc8f48f2 [INFO] running `Command { std: "docker" "start" "-a" "e533b6e8c29da85176e1931736a895d8ab1a55f7305058b3e5d68c49fc8f48f2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e533b6e8c29da85176e1931736a895d8ab1a55f7305058b3e5d68c49fc8f48f2", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e533b6e8c29da85176e1931736a895d8ab1a55f7305058b3e5d68c49fc8f48f2", kill_on_drop: false }` [INFO] [stdout] e533b6e8c29da85176e1931736a895d8ab1a55f7305058b3e5d68c49fc8f48f2 [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=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 24b6c09dac7fb559c76a1ea8a0217626d4812020698fd06732179b5cbdebac5d [INFO] running `Command { std: "docker" "start" "-a" "24b6c09dac7fb559c76a1ea8a0217626d4812020698fd06732179b5cbdebac5d", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.75 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling libc v0.2.151 [INFO] [stderr] Compiling bytes v1.5.0 [INFO] [stderr] Compiling pin-project-lite v0.2.13 [INFO] [stderr] Compiling memchr v2.7.1 [INFO] [stderr] Compiling itoa v1.0.10 [INFO] [stderr] Compiling parking_lot_core v0.9.9 [INFO] [stderr] Compiling serde v1.0.194 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling lock_api v0.4.11 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling futures-sink v0.3.30 [INFO] [stderr] Compiling pkg-config v0.3.28 [INFO] [stderr] Compiling smallvec v1.11.2 [INFO] [stderr] Compiling vcpkg v0.2.15 [INFO] [stderr] Compiling futures-io v0.3.30 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Compiling futures-task v0.3.30 [INFO] [stderr] Compiling bitflags v2.4.1 [INFO] [stderr] Compiling log v0.4.20 [INFO] [stderr] Compiling tinyvec_macros v0.1.1 [INFO] [stderr] Compiling openssl v0.10.62 [INFO] [stderr] Compiling tinyvec v1.6.0 [INFO] [stderr] Compiling httparse v1.8.0 [INFO] [stderr] Compiling ryu v1.0.16 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling equivalent v1.0.1 [INFO] [stderr] Compiling serde_json v1.0.111 [INFO] [stderr] Compiling unicode-bidi v0.3.14 [INFO] [stderr] Compiling hashbrown v0.14.3 [INFO] [stderr] Compiling try-lock v0.2.5 [INFO] [stderr] Compiling regex-syntax v0.8.2 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling crypto-common v0.1.6 [INFO] [stderr] Compiling aho-corasick v1.1.2 [INFO] [stderr] Compiling thiserror v1.0.56 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling cpufeatures v0.2.12 [INFO] [stderr] Compiling httpdate v1.0.3 [INFO] [stderr] Compiling uint v0.9.5 [INFO] [stderr] Compiling http v0.2.11 [INFO] [stderr] Compiling rlp v0.5.2 [INFO] [stderr] Compiling want v0.3.1 [INFO] [stderr] Compiling quote v1.0.35 [INFO] [stderr] Compiling impl-rlp v0.3.0 [INFO] [stderr] Compiling syn v2.0.48 [INFO] [stderr] Compiling cc v1.0.83 [INFO] [stderr] Compiling unicode-normalization v0.1.22 [INFO] [stderr] Compiling socket2 v0.5.5 [INFO] [stderr] Compiling mio v0.8.10 [INFO] [stderr] Compiling parking_lot v0.12.1 [INFO] [stderr] Compiling signal-hook-registry v1.4.1 [INFO] [stderr] Compiling getrandom v0.2.11 [INFO] [stderr] Compiling num_cpus v1.16.0 [INFO] [stderr] Compiling indexmap v2.1.0 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling http-body v0.4.6 [INFO] [stderr] Compiling idna v0.5.0 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rustix v0.38.28 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling tower-service v0.3.2 [INFO] [stderr] Compiling block-buffer v0.9.0 [INFO] [stderr] Compiling digest v0.9.0 [INFO] [stderr] Compiling url v2.5.0 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling base64 v0.21.5 [INFO] [stderr] Compiling keccak v0.1.4 [INFO] [stderr] Compiling mime v0.3.17 [INFO] [stderr] Compiling linux-raw-sys v0.4.12 [INFO] [stderr] Compiling sha-1 v0.9.8 [INFO] [stderr] Compiling regex-automata v0.4.3 [INFO] [stderr] Compiling sha3 v0.10.8 [INFO] [stderr] Compiling headers-core v0.2.0 [INFO] [stderr] Compiling sha1 v0.10.6 [INFO] [stderr] Compiling fixed-hash v0.8.0 [INFO] [stderr] Compiling encoding_rs v0.8.33 [INFO] [stderr] Compiling ipnet v2.9.0 [INFO] [stderr] Compiling os_str_bytes v6.6.1 [INFO] [stderr] Compiling base64 v0.13.1 [INFO] [stderr] Compiling termcolor v1.4.0 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling clap_lex v0.2.4 [INFO] [stderr] Compiling headers v0.3.9 [INFO] [stderr] Compiling is-terminal v0.4.10 [INFO] [stderr] Compiling idna v0.4.0 [INFO] [stderr] Compiling atty v0.2.14 [INFO] [stderr] Compiling csv-core v0.1.11 [INFO] [stderr] Compiling humantime v2.1.0 [INFO] [stderr] Compiling textwrap v0.16.1 [INFO] [stderr] Compiling futures-timer v3.0.2 [INFO] [stderr] Compiling arrayvec v0.7.4 [INFO] [stderr] Compiling clap v3.2.25 [INFO] [stderr] Compiling openssl-sys v0.9.98 [INFO] [stderr] Compiling secp256k1-sys v0.8.1 [INFO] [stderr] Compiling regex v1.10.2 [INFO] [stderr] Compiling native-tls v0.2.11 [INFO] [stderr] Compiling env_logger v0.10.1 [INFO] [stderr] Compiling secp256k1 v0.27.0 [INFO] [stderr] Compiling derive_more v0.99.17 [INFO] [stderr] Compiling serde_derive v1.0.194 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.2.0 [INFO] [stderr] Compiling openssl-macros v0.1.1 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling thiserror-impl v1.0.56 [INFO] [stderr] Compiling pin-project-internal v1.1.3 [INFO] [stderr] Compiling tokio v1.35.1 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling pin-project v1.1.3 [INFO] [stderr] Compiling futures-executor v0.3.30 [INFO] [stderr] Compiling futures v0.3.30 [INFO] [stderr] Compiling soketto v0.7.1 [INFO] [stderr] Compiling tokio-native-tls v0.3.1 [INFO] [stderr] Compiling tokio-stream v0.1.14 [INFO] [stderr] Compiling web3-async-native-tls v0.4.0 [INFO] [stderr] Compiling tracing v0.1.40 [INFO] [stderr] Compiling tokio-util v0.7.10 [INFO] [stderr] Compiling h2 v0.3.22 [INFO] [stderr] Compiling impl-serde v0.4.0 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling csv v1.3.0 [INFO] [stderr] Compiling ethbloom v0.13.0 [INFO] [stderr] Compiling primitive-types v0.12.2 [INFO] [stderr] Compiling jsonrpc-core v18.0.0 [INFO] [stderr] Compiling ethereum-types v0.14.1 [INFO] [stderr] Compiling ethabi v18.0.0 [INFO] [stderr] Compiling hyper v0.14.28 [INFO] [stderr] Compiling hyper-tls v0.5.0 [INFO] [stderr] Compiling reqwest v0.11.23 [INFO] [stderr] Compiling web3 v0.19.0 [INFO] [stderr] Compiling lydia v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: type `data_structure::ExternalCall` is more private than the item `contract::contract::Contract::external_calls` [INFO] [stdout] --> src/contract/contract.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub external_calls: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `contract::contract::Contract::external_calls` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `data_structure::ExternalCall` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/contract/data_structure.rs:135:1 [INFO] [stdout] | [INFO] [stdout] 135 | pub(crate) struct ExternalCall { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/graph/call_graph.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph { [INFO] [stdout] | ^^ this lifetime flows to the output --------- the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_stmt`, `sensitive_var`, and `source_op` are never read [INFO] [stdout] --> src/contract/data_structure.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 145 | pub struct SensitiveOpOfBadRandomnessAfterExternalCall { [INFO] [stdout] | ------------------------------------------- fields in this struct [INFO] [stdout] 146 | pub func_sign: String, [INFO] [stdout] 147 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 148 | pub sensitive_var: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 149 | pub source_op: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensitiveOpOfBadRandomnessAfterExternalCall` 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] [INFO] [stdout] [INFO] [stdout] warning: fields `call_stmt`, `call_ret_var`, `call_ret_index`, and `sensitive_var` are never read [INFO] [stdout] --> src/contract/data_structure.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 164 | pub struct SensitiveOpOfDoSAfterExternalCall { [INFO] [stdout] | --------------------------------- fields in this struct [INFO] [stdout] 165 | pub func_sign: String, [INFO] [stdout] 166 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 167 | pub call_ret_var: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 168 | pub call_ret_index: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 169 | pub sensitive_var: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_ret`, `func_ret_index`, and `func_ret` are never read [INFO] [stdout] --> src/contract/data_structure.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 226 | pub struct CallRetToFuncRet { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 227 | pub call_stmt: String, [INFO] [stdout] 228 | pub call_ret: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub func_ret_index: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 232 | pub func_ret: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_ret` and `call_arg` are never read [INFO] [stdout] --> src/contract/data_structure.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 249 | pub struct CallRetToCallArg { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 250 | pub call_stmt1: String, [INFO] [stdout] 251 | pub call_ret: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub call_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `func_arg` and `call_arg` are never read [INFO] [stdout] --> src/contract/data_structure.rs:280:9 [INFO] [stdout] | [INFO] [stdout] 277 | pub struct FuncArgToCallArg { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 280 | pub func_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub call_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `func_arg` and `call_arg_index` are never read [INFO] [stdout] --> src/contract/data_structure.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 300 | pub struct FuncArgToCallee { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 303 | pub func_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 304 | pub call_stmt: String, [INFO] [stdout] 305 | pub call_arg_index: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `func_arg` and `func_ret` are never read [INFO] [stdout] --> src/contract/data_structure.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 320 | pub struct FuncArgToFuncRet { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 323 | pub func_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 324 | pub func_ret_index: String, [INFO] [stdout] 325 | pub func_ret: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `env_var` and `tainted_var` are never read [INFO] [stdout] --> src/contract/data_structure.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 341 | pub struct EnvVarFlowsToTaintedVar { [INFO] [stdout] | ----------------------- fields in this struct [INFO] [stdout] 342 | pub func_sign: String, [INFO] [stdout] 343 | pub env_var: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 344 | pub tainted_var: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stmt` is never read [INFO] [stdout] --> src/contract/data_structure.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 358 | pub struct OpCreateInLoop { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 359 | pub func_sign: String, [INFO] [stdout] 360 | pub stmt: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stmt` is never read [INFO] [stdout] --> src/contract/data_structure.rs:375:9 [INFO] [stdout] | [INFO] [stdout] 373 | pub struct OpSoleCreate { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 374 | pub func_sign: String, [INFO] [stdout] 375 | pub stmt: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `target` is never read [INFO] [stdout] --> src/contract/data_structure.rs:390:9 [INFO] [stdout] | [INFO] [stdout] 388 | pub struct OpSelfdestruct { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 389 | pub func_sign: String, [INFO] [stdout] 390 | pub target: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `call_stmt` is never read [INFO] [stdout] --> src/contract/data_structure.rs:404:9 [INFO] [stdout] | [INFO] [stdout] 403 | pub struct ExternalCallInHook { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 404 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `call_stmt` is never read [INFO] [stdout] --> src/contract/data_structure.rs:419:9 [INFO] [stdout] | [INFO] [stdout] 418 | pub struct ExternalCallInFallback { [INFO] [stdout] | ---------------------- field in this struct [INFO] [stdout] 419 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `callee` is never read [INFO] [stdout] --> src/contract/data_structure.rs:435:9 [INFO] [stdout] | [INFO] [stdout] 433 | pub struct DoubleCallToSameContract { [INFO] [stdout] | ------------------------ field in this struct [INFO] [stdout] 434 | pub func_sign: String, [INFO] [stdout] 435 | pub callee: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_stmt`, `call_ret_var`, `call_ret_index`, and `sensitive_var` are never read [INFO] [stdout] --> src/contract/data_structure.rs:450:9 [INFO] [stdout] | [INFO] [stdout] 448 | pub struct DoubleCallToSameContractByStorage { [INFO] [stdout] | --------------------------------- fields in this struct [INFO] [stdout] 449 | pub func_sign: String, [INFO] [stdout] 450 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 451 | pub call_ret_var: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 452 | pub call_ret_index: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 453 | pub sensitive_var: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_stmt` and `storage_slot` are never read [INFO] [stdout] --> src/contract/data_structure.rs:471:9 [INFO] [stdout] | [INFO] [stdout] 469 | pub struct CallInStandardTransfer { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] 470 | pub func_sign: String, [INFO] [stdout] 471 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 472 | pub storage_slot: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `FlowAnalysis`, `Network`, and `General` are never constructed [INFO] [stdout] --> src/error.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum LydiaError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | FlowAnalysis(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | Network(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 25 | /// General application errors [INFO] [stdout] 26 | General(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LydiaError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `format_duration` is never used [INFO] [stdout] --> src/utils.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn format_duration(duration: std::time::Duration) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `is_valid_ethereum_address` is never used [INFO] [stdout] --> src/utils.rs:44:8 [INFO] [stdout] | [INFO] [stdout] 44 | pub fn is_valid_ethereum_address(address: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/graph/call_graph.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph { [INFO] [stdout] | ^^ this lifetime flows to the output --------- the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 6m 02s [INFO] running `Command { std: "docker" "inspect" "24b6c09dac7fb559c76a1ea8a0217626d4812020698fd06732179b5cbdebac5d", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "24b6c09dac7fb559c76a1ea8a0217626d4812020698fd06732179b5cbdebac5d", kill_on_drop: false }` [INFO] [stdout] 24b6c09dac7fb559c76a1ea8a0217626d4812020698fd06732179b5cbdebac5d [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=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 187a0185c1eb0469a4fbf5de8173c76c21df873e1273c2fe71177b15cab0bfed [INFO] running `Command { std: "docker" "start" "-a" "187a0185c1eb0469a4fbf5de8173c76c21df873e1273c2fe71177b15cab0bfed", kill_on_drop: false }` [INFO] [stderr] Compiling lydia v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: type `data_structure::ExternalCall` is more private than the item `contract::contract::Contract::external_calls` [INFO] [stdout] --> src/contract/contract.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub external_calls: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `contract::contract::Contract::external_calls` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `data_structure::ExternalCall` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/contract/data_structure.rs:135:1 [INFO] [stdout] | [INFO] [stdout] 135 | pub(crate) struct ExternalCall { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/graph/call_graph.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph { [INFO] [stdout] | ^^ this lifetime flows to the output --------- the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type `data_structure::ExternalCall` is more private than the item `contract::contract::Contract::external_calls` [INFO] [stdout] --> src/contract/contract.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | pub external_calls: Vec, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `contract::contract::Contract::external_calls` is reachable at visibility `pub` [INFO] [stdout] | [INFO] [stdout] note: but type `data_structure::ExternalCall` is only usable at visibility `pub(crate)` [INFO] [stdout] --> src/contract/data_structure.rs:135:1 [INFO] [stdout] | [INFO] [stdout] 135 | pub(crate) struct ExternalCall { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] = note: `#[warn(private_interfaces)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/graph/call_graph.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph { [INFO] [stdout] | ^^ this lifetime flows to the output --------- the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_stmt`, `sensitive_var`, and `source_op` are never read [INFO] [stdout] --> src/contract/data_structure.rs:147:9 [INFO] [stdout] | [INFO] [stdout] 145 | pub struct SensitiveOpOfBadRandomnessAfterExternalCall { [INFO] [stdout] | ------------------------------------------- fields in this struct [INFO] [stdout] 146 | pub func_sign: String, [INFO] [stdout] 147 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 148 | pub sensitive_var: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 149 | pub source_op: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `SensitiveOpOfBadRandomnessAfterExternalCall` 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] [INFO] [stdout] [INFO] [stdout] warning: fields `call_stmt`, `call_ret_var`, `call_ret_index`, and `sensitive_var` are never read [INFO] [stdout] --> src/contract/data_structure.rs:166:9 [INFO] [stdout] | [INFO] [stdout] 164 | pub struct SensitiveOpOfDoSAfterExternalCall { [INFO] [stdout] | --------------------------------- fields in this struct [INFO] [stdout] 165 | pub func_sign: String, [INFO] [stdout] 166 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 167 | pub call_ret_var: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 168 | pub call_ret_index: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 169 | pub sensitive_var: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_ret`, `func_ret_index`, and `func_ret` are never read [INFO] [stdout] --> src/contract/data_structure.rs:228:9 [INFO] [stdout] | [INFO] [stdout] 226 | pub struct CallRetToFuncRet { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 227 | pub call_stmt: String, [INFO] [stdout] 228 | pub call_ret: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 231 | pub func_ret_index: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 232 | pub func_ret: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_ret` and `call_arg` are never read [INFO] [stdout] --> src/contract/data_structure.rs:251:9 [INFO] [stdout] | [INFO] [stdout] 249 | pub struct CallRetToCallArg { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] 250 | pub call_stmt1: String, [INFO] [stdout] 251 | pub call_ret: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 255 | pub call_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `func_arg` and `call_arg` are never read [INFO] [stdout] --> src/contract/data_structure.rs:280:9 [INFO] [stdout] | [INFO] [stdout] 277 | pub struct FuncArgToCallArg { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 280 | pub func_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 283 | pub call_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `func_arg` and `call_arg_index` are never read [INFO] [stdout] --> src/contract/data_structure.rs:303:9 [INFO] [stdout] | [INFO] [stdout] 300 | pub struct FuncArgToCallee { [INFO] [stdout] | --------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 303 | pub func_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 304 | pub call_stmt: String, [INFO] [stdout] 305 | pub call_arg_index: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `func_arg` and `func_ret` are never read [INFO] [stdout] --> src/contract/data_structure.rs:323:9 [INFO] [stdout] | [INFO] [stdout] 320 | pub struct FuncArgToFuncRet { [INFO] [stdout] | ---------------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 323 | pub func_arg: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 324 | pub func_ret_index: String, [INFO] [stdout] 325 | pub func_ret: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `env_var` and `tainted_var` are never read [INFO] [stdout] --> src/contract/data_structure.rs:343:9 [INFO] [stdout] | [INFO] [stdout] 341 | pub struct EnvVarFlowsToTaintedVar { [INFO] [stdout] | ----------------------- fields in this struct [INFO] [stdout] 342 | pub func_sign: String, [INFO] [stdout] 343 | pub env_var: String, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 344 | pub tainted_var: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stmt` is never read [INFO] [stdout] --> src/contract/data_structure.rs:360:9 [INFO] [stdout] | [INFO] [stdout] 358 | pub struct OpCreateInLoop { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 359 | pub func_sign: String, [INFO] [stdout] 360 | pub stmt: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `stmt` is never read [INFO] [stdout] --> src/contract/data_structure.rs:375:9 [INFO] [stdout] | [INFO] [stdout] 373 | pub struct OpSoleCreate { [INFO] [stdout] | ------------ field in this struct [INFO] [stdout] 374 | pub func_sign: String, [INFO] [stdout] 375 | pub stmt: String, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `target` is never read [INFO] [stdout] --> src/contract/data_structure.rs:390:9 [INFO] [stdout] | [INFO] [stdout] 388 | pub struct OpSelfdestruct { [INFO] [stdout] | -------------- field in this struct [INFO] [stdout] 389 | pub func_sign: String, [INFO] [stdout] 390 | pub target: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `call_stmt` is never read [INFO] [stdout] --> src/contract/data_structure.rs:404:9 [INFO] [stdout] | [INFO] [stdout] 403 | pub struct ExternalCallInHook { [INFO] [stdout] | ------------------ field in this struct [INFO] [stdout] 404 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `call_stmt` is never read [INFO] [stdout] --> src/contract/data_structure.rs:419:9 [INFO] [stdout] | [INFO] [stdout] 418 | pub struct ExternalCallInFallback { [INFO] [stdout] | ---------------------- field in this struct [INFO] [stdout] 419 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `callee` is never read [INFO] [stdout] --> src/contract/data_structure.rs:435:9 [INFO] [stdout] | [INFO] [stdout] 433 | pub struct DoubleCallToSameContract { [INFO] [stdout] | ------------------------ field in this struct [INFO] [stdout] 434 | pub func_sign: String, [INFO] [stdout] 435 | pub callee: String, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_stmt`, `call_ret_var`, `call_ret_index`, and `sensitive_var` are never read [INFO] [stdout] --> src/contract/data_structure.rs:450:9 [INFO] [stdout] | [INFO] [stdout] 448 | pub struct DoubleCallToSameContractByStorage { [INFO] [stdout] | --------------------------------- fields in this struct [INFO] [stdout] 449 | pub func_sign: String, [INFO] [stdout] 450 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 451 | pub call_ret_var: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] 452 | pub call_ret_index: String, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 453 | pub sensitive_var: String, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `call_stmt` and `storage_slot` are never read [INFO] [stdout] --> src/contract/data_structure.rs:471:9 [INFO] [stdout] | [INFO] [stdout] 469 | pub struct CallInStandardTransfer { [INFO] [stdout] | ---------------------- fields in this struct [INFO] [stdout] 470 | pub func_sign: String, [INFO] [stdout] 471 | pub call_stmt: String, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 472 | pub storage_slot: String, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `FlowAnalysis`, `Network`, and `General` are never constructed [INFO] [stdout] --> src/error.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum LydiaError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | FlowAnalysis(String), [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 24 | Network(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 25 | /// General application errors [INFO] [stdout] 26 | General(String), [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `LydiaError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stdout] --> src/graph/call_graph.rs:13:46 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph { [INFO] [stdout] | ^^ this lifetime flows to the output --------- the lifetime gets resolved as `'a` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: one option is to consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph<'a> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 2.36s [INFO] running `Command { std: "docker" "inspect" "187a0185c1eb0469a4fbf5de8173c76c21df873e1273c2fe71177b15cab0bfed", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "187a0185c1eb0469a4fbf5de8173c76c21df873e1273c2fe71177b15cab0bfed", kill_on_drop: false }` [INFO] [stdout] 187a0185c1eb0469a4fbf5de8173c76c21df873e1273c2fe71177b15cab0bfed [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=forbid -Copt-level=3" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+733b47ea4b1b86216f14ef56e49440c33933f230" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 7b018f55507f1bbe8c4da7998350bcee4b31e7821057367c2b0824b8d00bf840 [INFO] running `Command { std: "docker" "start" "-a" "7b018f55507f1bbe8c4da7998350bcee4b31e7821057367c2b0824b8d00bf840", kill_on_drop: false }` [INFO] [stderr] warning: type `data_structure::ExternalCall` is more private than the item `contract::contract::Contract::external_calls` [INFO] [stderr] --> src/contract/contract.rs:49:5 [INFO] [stderr] | [INFO] [stderr] 49 | pub external_calls: Vec, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ field `contract::contract::Contract::external_calls` is reachable at visibility `pub` [INFO] [stderr] | [INFO] [stderr] note: but type `data_structure::ExternalCall` is only usable at visibility `pub(crate)` [INFO] [stderr] --> src/contract/data_structure.rs:135:1 [INFO] [stderr] | [INFO] [stderr] 135 | pub(crate) struct ExternalCall { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] = note: `#[warn(private_interfaces)]` on by default [INFO] [stderr] [INFO] [stderr] warning: lifetime flowing from input to output with different syntax can be confusing [INFO] [stderr] --> src/graph/call_graph.rs:13:46 [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph { [INFO] [stderr] | ^^ this lifetime flows to the output --------- the lifetime gets resolved as `'a` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: one option is to consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 13 | pub fn new(platform: String, contracts: &'a mut HashMap) -> CallGraph<'a> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: `lydia` (lib) generated 2 warnings [INFO] [stderr] warning: `lydia` (lib test) generated 2 warnings (2 duplicates) [INFO] [stderr] warning: fields `call_stmt`, `sensitive_var`, and `source_op` are never read [INFO] [stderr] --> src/contract/data_structure.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 145 | pub struct SensitiveOpOfBadRandomnessAfterExternalCall { [INFO] [stderr] | ------------------------------------------- fields in this struct [INFO] [stderr] 146 | pub func_sign: String, [INFO] [stderr] 147 | pub call_stmt: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 148 | pub sensitive_var: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 149 | pub source_op: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `SensitiveOpOfBadRandomnessAfterExternalCall` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] = note: `#[warn(dead_code)]` on by default [INFO] [stderr] [INFO] [stderr] warning: fields `call_stmt`, `call_ret_var`, `call_ret_index`, and `sensitive_var` are never read [INFO] [stderr] --> src/contract/data_structure.rs:166:9 [INFO] [stderr] | [INFO] [stderr] 164 | pub struct SensitiveOpOfDoSAfterExternalCall { [INFO] [stderr] | --------------------------------- fields in this struct [INFO] [stderr] 165 | pub func_sign: String, [INFO] [stderr] 166 | pub call_stmt: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 167 | pub call_ret_var: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 168 | pub call_ret_index: String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 169 | pub sensitive_var: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `call_ret`, `func_ret_index`, and `func_ret` are never read [INFO] [stderr] --> src/contract/data_structure.rs:228:9 [INFO] [stderr] | [INFO] [stderr] 226 | pub struct CallRetToFuncRet { [INFO] [stderr] | ---------------- fields in this struct [INFO] [stderr] 227 | pub call_stmt: String, [INFO] [stderr] 228 | pub call_ret: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 231 | pub func_ret_index: String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 232 | pub func_ret: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `call_ret` and `call_arg` are never read [INFO] [stderr] --> src/contract/data_structure.rs:251:9 [INFO] [stderr] | [INFO] [stderr] 249 | pub struct CallRetToCallArg { [INFO] [stderr] | ---------------- fields in this struct [INFO] [stderr] 250 | pub call_stmt1: String, [INFO] [stderr] 251 | pub call_ret: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 255 | pub call_arg: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `func_arg` and `call_arg` are never read [INFO] [stderr] --> src/contract/data_structure.rs:280:9 [INFO] [stderr] | [INFO] [stderr] 277 | pub struct FuncArgToCallArg { [INFO] [stderr] | ---------------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 280 | pub func_arg: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 283 | pub call_arg: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `func_arg` and `call_arg_index` are never read [INFO] [stderr] --> src/contract/data_structure.rs:303:9 [INFO] [stderr] | [INFO] [stderr] 300 | pub struct FuncArgToCallee { [INFO] [stderr] | --------------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 303 | pub func_arg: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 304 | pub call_stmt: String, [INFO] [stderr] 305 | pub call_arg_index: String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `func_arg` and `func_ret` are never read [INFO] [stderr] --> src/contract/data_structure.rs:323:9 [INFO] [stderr] | [INFO] [stderr] 320 | pub struct FuncArgToFuncRet { [INFO] [stderr] | ---------------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 323 | pub func_arg: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] 324 | pub func_ret_index: String, [INFO] [stderr] 325 | pub func_ret: String, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `env_var` and `tainted_var` are never read [INFO] [stderr] --> src/contract/data_structure.rs:343:9 [INFO] [stderr] | [INFO] [stderr] 341 | pub struct EnvVarFlowsToTaintedVar { [INFO] [stderr] | ----------------------- fields in this struct [INFO] [stderr] 342 | pub func_sign: String, [INFO] [stderr] 343 | pub env_var: String, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 344 | pub tainted_var: String, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `stmt` is never read [INFO] [stderr] --> src/contract/data_structure.rs:360:9 [INFO] [stderr] | [INFO] [stderr] 358 | pub struct OpCreateInLoop { [INFO] [stderr] | -------------- field in this struct [INFO] [stderr] 359 | pub func_sign: String, [INFO] [stderr] 360 | pub stmt: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `stmt` is never read [INFO] [stderr] --> src/contract/data_structure.rs:375:9 [INFO] [stderr] | [INFO] [stderr] 373 | pub struct OpSoleCreate { [INFO] [stderr] | ------------ field in this struct [INFO] [stderr] 374 | pub func_sign: String, [INFO] [stderr] 375 | pub stmt: String, [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `target` is never read [INFO] [stderr] --> src/contract/data_structure.rs:390:9 [INFO] [stderr] | [INFO] [stderr] 388 | pub struct OpSelfdestruct { [INFO] [stderr] | -------------- field in this struct [INFO] [stderr] 389 | pub func_sign: String, [INFO] [stderr] 390 | pub target: String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `call_stmt` is never read [INFO] [stderr] --> src/contract/data_structure.rs:404:9 [INFO] [stderr] | [INFO] [stderr] 403 | pub struct ExternalCallInHook { [INFO] [stderr] | ------------------ field in this struct [INFO] [stderr] 404 | pub call_stmt: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `call_stmt` is never read [INFO] [stderr] --> src/contract/data_structure.rs:419:9 [INFO] [stderr] | [INFO] [stderr] 418 | pub struct ExternalCallInFallback { [INFO] [stderr] | ---------------------- field in this struct [INFO] [stderr] 419 | pub call_stmt: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: field `callee` is never read [INFO] [stderr] --> src/contract/data_structure.rs:435:9 [INFO] [stderr] | [INFO] [stderr] 433 | pub struct DoubleCallToSameContract { [INFO] [stderr] | ------------------------ field in this struct [INFO] [stderr] 434 | pub func_sign: String, [INFO] [stderr] 435 | pub callee: String, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `call_stmt`, `call_ret_var`, `call_ret_index`, and `sensitive_var` are never read [INFO] [stderr] --> src/contract/data_structure.rs:450:9 [INFO] [stderr] | [INFO] [stderr] 448 | pub struct DoubleCallToSameContractByStorage { [INFO] [stderr] | --------------------------------- fields in this struct [INFO] [stderr] 449 | pub func_sign: String, [INFO] [stderr] 450 | pub call_stmt: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 451 | pub call_ret_var: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] 452 | pub call_ret_index: String, [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 453 | pub sensitive_var: String, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `call_stmt` and `storage_slot` are never read [INFO] [stderr] --> src/contract/data_structure.rs:471:9 [INFO] [stderr] | [INFO] [stderr] 469 | pub struct CallInStandardTransfer { [INFO] [stderr] | ---------------------- fields in this struct [INFO] [stderr] 470 | pub func_sign: String, [INFO] [stderr] 471 | pub call_stmt: String, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 472 | pub storage_slot: String, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `FlowAnalysis`, `Network`, and `General` are never constructed [INFO] [stderr] --> src/error.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub enum LydiaError { [INFO] [stderr] | ---------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 18 | FlowAnalysis(String), [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 24 | Network(String), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 25 | /// General application errors [INFO] [stderr] 26 | General(String), [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `LydiaError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: `lydia` (bin "lydia" test) generated 18 warnings (1 duplicate) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.29s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/lydia-0ad75c1a9f7e6f72) [INFO] [stdout] [INFO] [stdout] running 4 tests [INFO] [stdout] test tests::test_config_creation ... ok [INFO] [stdout] test tests::test_error_conversion ... ok [INFO] [stdout] test utils::tests::test_format_duration ... ok [INFO] [stdout] test utils::tests::test_valid_ethereum_address ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/lydia-c47c856ab9e8d130) [INFO] [stdout] [INFO] [stdout] running 2 tests [INFO] [stdout] test utils::tests::test_format_duration ... ok [INFO] [stdout] test utils::tests::test_valid_ethereum_address ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 2 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests lydia [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "7b018f55507f1bbe8c4da7998350bcee4b31e7821057367c2b0824b8d00bf840", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "7b018f55507f1bbe8c4da7998350bcee4b31e7821057367c2b0824b8d00bf840", kill_on_drop: false }` [INFO] [stdout] 7b018f55507f1bbe8c4da7998350bcee4b31e7821057367c2b0824b8d00bf840