[INFO] cloning repository https://github.com/abrcdf1023/rust_hello_world [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/abrcdf1023/rust_hello_world" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabrcdf1023%2Frust_hello_world", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabrcdf1023%2Frust_hello_world'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2254a2b443298ef766ba98848542044429daaba8 [INFO] building abrcdf1023/rust_hello_world against master#11663cd3bfefef7d34e8f0892c250bf698049392+rustflags=-Dtail-expr-drop-order for pr-134523 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fabrcdf1023%2Frust_hello_world" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/abrcdf1023/rust_hello_world on toolchain 11663cd3bfefef7d34e8f0892c250bf698049392 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/abrcdf1023/rust_hello_world [INFO] finished tweaking git repo https://github.com/abrcdf1023/rust_hello_world [INFO] tweaked toml for git repo https://github.com/abrcdf1023/rust_hello_world written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] crate git repo https://github.com/abrcdf1023/rust_hello_world 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" "+11663cd3bfefef7d34e8f0892c250bf698049392" "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-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] e293f9c8eb2a82d9b7a40dcaf717750b5d9693d2946be96ed8a46698128c995f [INFO] running `Command { std: "docker" "start" "-a" "e293f9c8eb2a82d9b7a40dcaf717750b5d9693d2946be96ed8a46698128c995f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "e293f9c8eb2a82d9b7a40dcaf717750b5d9693d2946be96ed8a46698128c995f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e293f9c8eb2a82d9b7a40dcaf717750b5d9693d2946be96ed8a46698128c995f", kill_on_drop: false }` [INFO] [stdout] e293f9c8eb2a82d9b7a40dcaf717750b5d9693d2946be96ed8a46698128c995f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 2e7ce4a66aaad7e81e8db0312ff380bae6083eb386fb2d2fc4601ef0692338ba [INFO] running `Command { std: "docker" "start" "-a" "2e7ce4a66aaad7e81e8db0312ff380bae6083eb386fb2d2fc4601ef0692338ba", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.62 [INFO] [stderr] Compiling rand v0.4.6 [INFO] [stderr] Compiling rand v0.3.23 [INFO] [stderr] Compiling rust_hello_world v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/datatype.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/datatype.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | let y: i64 = 30; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/datatype.rs:123:8 [INFO] [stdout] | [INFO] [stdout] 123 | let (x, y, z) = tup; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `z` [INFO] [stdout] --> src/datatype.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 123 | let (x, y, z) = tup; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_z` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/datatype.rs:145:7 [INFO] [stdout] | [INFO] [stdout] 145 | let a: [i32; 5] = [1, 2, 3, 4, 5]; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/ownership.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | let y = x; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s2` [INFO] [stdout] --> src/ownership.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | let s2 = s1; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_s2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s1` [INFO] [stdout] --> src/ownership.rs:72:7 [INFO] [stdout] | [INFO] [stdout] 72 | let s1 = gives_ownership(); // gives_ownership moves its return [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_s1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r1` [INFO] [stdout] --> src/references.rs:81:11 [INFO] [stdout] | [INFO] [stdout] 81 | let r1 = &mut s; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r2` [INFO] [stdout] --> src/references.rs:85:7 [INFO] [stdout] | [INFO] [stdout] 85 | let r2 = &mut s; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `guess_number` is never used [INFO] [stdout] --> src/guess.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn guess_number() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mutable` is never used [INFO] [stdout] --> src/datatype.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn mutable() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `variables_shadowing` is never used [INFO] [stdout] --> src/datatype.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn variables_shadowing() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types` is never used [INFO] [stdout] --> src/datatype.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn data_types() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types_integer` is never used [INFO] [stdout] --> src/datatype.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn data_types_integer() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types_float` is never used [INFO] [stdout] --> src/datatype.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn data_types_float() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `numeric_operations` is never used [INFO] [stdout] --> src/datatype.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn numeric_operations() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types_boolean` is never used [INFO] [stdout] --> src/datatype.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn data_types_boolean() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types_char` is never used [INFO] [stdout] --> src/datatype.rs:102:8 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn data_types_char() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compound_types` is never used [INFO] [stdout] --> src/datatype.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 119 | pub fn compound_types() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GLOBAL_VALUE` is never used [INFO] [stdout] --> src/datatype.rs:157:7 [INFO] [stdout] | [INFO] [stdout] 157 | const GLOBAL_VALUE: &str = "發大財"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CHANGABLE_GLOBAL_VALUE` is never used [INFO] [stdout] --> src/datatype.rs:158:8 [INFO] [stdout] | [INFO] [stdout] 158 | static CHANGABLE_GLOBAL_VALUE: f64 = 10.5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tuple_with_mixed_data_type` is never used [INFO] [stdout] --> src/datatype.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn tuple_with_mixed_data_type() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hello_world` is never used [INFO] [stdout] --> src/my_functions.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn hello_world() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fn_with_parameters` is never used [INFO] [stdout] --> src/my_functions.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn fn_with_parameters(x: i32, y: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expression_based` is never used [INFO] [stdout] --> src/my_functions.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn expression_based() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `statement_test` is never used [INFO] [stdout] --> src/my_functions.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn statement_test() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/my_functions.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn add(x: i32, y: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `private_fn` is never used [INFO] [stdout] --> src/my_functions.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn private_fn(x: i32, y: i32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul_condition` is never used [INFO] [stdout] --> src/control_flow.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn mul_condition(number: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `use_match` is never used [INFO] [stdout] --> src/control_flow.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn use_match(number: i32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `use_if_expression` is never used [INFO] [stdout] --> src/control_flow.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn use_if_expression() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_to_100` is never used [INFO] [stdout] --> src/control_flow.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn add_to_100() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `loop_result` is never used [INFO] [stdout] --> src/control_flow.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn loop_result() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reduce_to_0` is never used [INFO] [stdout] --> src/control_flow.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn reduce_to_0() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `for_in_array` is never used [INFO] [stdout] --> src/control_flow.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn for_in_array() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_vs_copy` is never used [INFO] [stdout] --> src/ownership.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn move_vs_copy() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `double_free_error` is never used [INFO] [stdout] --> src/ownership.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn double_free_error() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_fixed_double_free_error` is never used [INFO] [stdout] --> src/ownership.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn to_fixed_double_free_error() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `without_double_free_error` is never used [INFO] [stdout] --> src/ownership.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn without_double_free_error() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ownership_and_functions` is never used [INFO] [stdout] --> src/ownership.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn ownership_and_functions() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `takes_ownership` is never used [INFO] [stdout] --> src/ownership.rs:63:4 [INFO] [stdout] | [INFO] [stdout] 63 | fn takes_ownership(some_string: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `makes_copy` is never used [INFO] [stdout] --> src/ownership.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn makes_copy(some_integer: i32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ownership_and_return_values` is never used [INFO] [stdout] --> src/ownership.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn ownership_and_return_values() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gives_ownership` is never used [INFO] [stdout] --> src/ownership.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn gives_ownership() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `takes_and_gives_back` is never used [INFO] [stdout] --> src/ownership.rs:101:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn takes_and_gives_back(a_string: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_length` is never used [INFO] [stdout] --> src/ownership.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn calculate_length(s: String) -> (String, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_length` is never used [INFO] [stdout] --> src/references.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn calculate_length(s: &String) -> usize { // s is a reference to a String [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `changeable` is never used [INFO] [stdout] --> src/references.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn changeable(some_string: &mut String) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `this_work` is never used [INFO] [stdout] --> src/references.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn this_work() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `this_still_work` is never used [INFO] [stdout] --> src/references.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn this_still_work() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `this_work_too` is never used [INFO] [stdout] --> src/references.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn this_work_too() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `no_dangling_references` is never used [INFO] [stdout] --> src/references.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn no_dangling_references() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_word` is never used [INFO] [stdout] --> src/slice_type.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn first_word(s: &String) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_word_enhance` is never used [INFO] [stdout] --> src/slice_type.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn first_word_enhance(s: &String) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username`, `sign_in_count`, and `active` are never read [INFO] [stdout] --> src/struct_demo.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 3 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 4 | email: String, [INFO] [stdout] 5 | sign_in_count: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 6 | active: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 1.62s [INFO] running `Command { std: "docker" "inspect" "2e7ce4a66aaad7e81e8db0312ff380bae6083eb386fb2d2fc4601ef0692338ba", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "2e7ce4a66aaad7e81e8db0312ff380bae6083eb386fb2d2fc4601ef0692338ba", kill_on_drop: false }` [INFO] [stdout] 2e7ce4a66aaad7e81e8db0312ff380bae6083eb386fb2d2fc4601ef0692338ba [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dtail-expr-drop-order" "-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:f3a9d4ad9d972b27faf3965f35b62e55ba32bbce8f20bc8fe909558a86702fde" "/opt/rustwide/cargo-home/bin/cargo" "+11663cd3bfefef7d34e8f0892c250bf698049392" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] d2d17e697b63d27e6ad2bf1454f0c51ebb3c0bcc4e1c257a48fdb25eaf2674ec [INFO] running `Command { std: "docker" "start" "-a" "d2d17e697b63d27e6ad2bf1454f0c51ebb3c0bcc4e1c257a48fdb25eaf2674ec", kill_on_drop: false }` [INFO] [stderr] Compiling rust_hello_world v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/main.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::io` [INFO] [stdout] --> src/datatype.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::io; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/datatype.rs:48:7 [INFO] [stdout] | [INFO] [stdout] 48 | let y: i64 = 30; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `x` [INFO] [stdout] --> src/datatype.rs:123:8 [INFO] [stdout] | [INFO] [stdout] 123 | let (x, y, z) = tup; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_x` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `z` [INFO] [stdout] --> src/datatype.rs:123:14 [INFO] [stdout] | [INFO] [stdout] 123 | let (x, y, z) = tup; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_z` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `a` [INFO] [stdout] --> src/datatype.rs:145:7 [INFO] [stdout] | [INFO] [stdout] 145 | let a: [i32; 5] = [1, 2, 3, 4, 5]; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_a` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `y` [INFO] [stdout] --> src/ownership.rs:3:7 [INFO] [stdout] | [INFO] [stdout] 3 | let y = x; [INFO] [stdout] | ^ help: if this is intentional, prefix it with an underscore: `_y` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s2` [INFO] [stdout] --> src/ownership.rs:6:7 [INFO] [stdout] | [INFO] [stdout] 6 | let s2 = s1; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_s2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `s1` [INFO] [stdout] --> src/ownership.rs:72:7 [INFO] [stdout] | [INFO] [stdout] 72 | let s1 = gives_ownership(); // gives_ownership moves its return [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_s1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r1` [INFO] [stdout] --> src/references.rs:81:11 [INFO] [stdout] | [INFO] [stdout] 81 | let r1 = &mut s; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r1` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `r2` [INFO] [stdout] --> src/references.rs:85:7 [INFO] [stdout] | [INFO] [stdout] 85 | let r2 = &mut s; [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_r2` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `guess_number` is never used [INFO] [stdout] --> src/guess.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn guess_number() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mutable` is never used [INFO] [stdout] --> src/datatype.rs:11:8 [INFO] [stdout] | [INFO] [stdout] 11 | pub fn mutable() { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `variables_shadowing` is never used [INFO] [stdout] --> src/datatype.rs:24:8 [INFO] [stdout] | [INFO] [stdout] 24 | pub fn variables_shadowing() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types` is never used [INFO] [stdout] --> src/datatype.rs:45:8 [INFO] [stdout] | [INFO] [stdout] 45 | pub fn data_types() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types_integer` is never used [INFO] [stdout] --> src/datatype.rs:53:8 [INFO] [stdout] | [INFO] [stdout] 53 | pub fn data_types_integer() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types_float` is never used [INFO] [stdout] --> src/datatype.rs:65:8 [INFO] [stdout] | [INFO] [stdout] 65 | pub fn data_types_float() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `numeric_operations` is never used [INFO] [stdout] --> src/datatype.rs:75:8 [INFO] [stdout] | [INFO] [stdout] 75 | pub fn numeric_operations() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types_boolean` is never used [INFO] [stdout] --> src/datatype.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn data_types_boolean() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `data_types_char` is never used [INFO] [stdout] --> src/datatype.rs:102:8 [INFO] [stdout] | [INFO] [stdout] 102 | pub fn data_types_char() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `compound_types` is never used [INFO] [stdout] --> src/datatype.rs:119:8 [INFO] [stdout] | [INFO] [stdout] 119 | pub fn compound_types() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant `GLOBAL_VALUE` is never used [INFO] [stdout] --> src/datatype.rs:157:7 [INFO] [stdout] | [INFO] [stdout] 157 | const GLOBAL_VALUE: &str = "發大財"; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: static `CHANGABLE_GLOBAL_VALUE` is never used [INFO] [stdout] --> src/datatype.rs:158:8 [INFO] [stdout] | [INFO] [stdout] 158 | static CHANGABLE_GLOBAL_VALUE: f64 = 10.5; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `tuple_with_mixed_data_type` is never used [INFO] [stdout] --> src/datatype.rs:160:8 [INFO] [stdout] | [INFO] [stdout] 160 | pub fn tuple_with_mixed_data_type() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `hello_world` is never used [INFO] [stdout] --> src/my_functions.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn hello_world() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `fn_with_parameters` is never used [INFO] [stdout] --> src/my_functions.rs:5:8 [INFO] [stdout] | [INFO] [stdout] 5 | pub fn fn_with_parameters(x: i32, y: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `expression_based` is never used [INFO] [stdout] --> src/my_functions.rs:10:8 [INFO] [stdout] | [INFO] [stdout] 10 | pub fn expression_based() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `statement_test` is never used [INFO] [stdout] --> src/my_functions.rs:19:8 [INFO] [stdout] | [INFO] [stdout] 19 | pub fn statement_test() { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add` is never used [INFO] [stdout] --> src/my_functions.rs:29:8 [INFO] [stdout] | [INFO] [stdout] 29 | pub fn add(x: i32, y: i32) -> i32 { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `private_fn` is never used [INFO] [stdout] --> src/my_functions.rs:33:4 [INFO] [stdout] | [INFO] [stdout] 33 | fn private_fn(x: i32, y: i32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `mul_condition` is never used [INFO] [stdout] --> src/control_flow.rs:3:8 [INFO] [stdout] | [INFO] [stdout] 3 | pub fn mul_condition(number: i32) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `use_match` is never used [INFO] [stdout] --> src/control_flow.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn use_match(number: i32) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `use_if_expression` is never used [INFO] [stdout] --> src/control_flow.rs:25:8 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn use_if_expression() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `add_to_100` is never used [INFO] [stdout] --> src/control_flow.rs:36:8 [INFO] [stdout] | [INFO] [stdout] 36 | pub fn add_to_100() { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `loop_result` is never used [INFO] [stdout] --> src/control_flow.rs:48:8 [INFO] [stdout] | [INFO] [stdout] 48 | pub fn loop_result() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `reduce_to_0` is never used [INFO] [stdout] --> src/control_flow.rs:62:8 [INFO] [stdout] | [INFO] [stdout] 62 | pub fn reduce_to_0() { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `for_in_array` is never used [INFO] [stdout] --> src/control_flow.rs:70:8 [INFO] [stdout] | [INFO] [stdout] 70 | pub fn for_in_array() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `move_vs_copy` is never used [INFO] [stdout] --> src/ownership.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn move_vs_copy() { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `double_free_error` is never used [INFO] [stdout] --> src/ownership.rs:15:8 [INFO] [stdout] | [INFO] [stdout] 15 | pub fn double_free_error() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `to_fixed_double_free_error` is never used [INFO] [stdout] --> src/ownership.rs:28:8 [INFO] [stdout] | [INFO] [stdout] 28 | pub fn to_fixed_double_free_error() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `without_double_free_error` is never used [INFO] [stdout] --> src/ownership.rs:39:8 [INFO] [stdout] | [INFO] [stdout] 39 | pub fn without_double_free_error() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ownership_and_functions` is never used [INFO] [stdout] --> src/ownership.rs:47:8 [INFO] [stdout] | [INFO] [stdout] 47 | pub fn ownership_and_functions() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `takes_ownership` is never used [INFO] [stdout] --> src/ownership.rs:63:4 [INFO] [stdout] | [INFO] [stdout] 63 | fn takes_ownership(some_string: String) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `makes_copy` is never used [INFO] [stdout] --> src/ownership.rs:67:4 [INFO] [stdout] | [INFO] [stdout] 67 | fn makes_copy(some_integer: i32) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `ownership_and_return_values` is never used [INFO] [stdout] --> src/ownership.rs:71:8 [INFO] [stdout] | [INFO] [stdout] 71 | pub fn ownership_and_return_values() { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `gives_ownership` is never used [INFO] [stdout] --> src/ownership.rs:88:4 [INFO] [stdout] | [INFO] [stdout] 88 | fn gives_ownership() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `takes_and_gives_back` is never used [INFO] [stdout] --> src/ownership.rs:101:4 [INFO] [stdout] | [INFO] [stdout] 101 | fn takes_and_gives_back(a_string: String) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_length` is never used [INFO] [stdout] --> src/ownership.rs:109:4 [INFO] [stdout] | [INFO] [stdout] 109 | fn calculate_length(s: String) -> (String, usize) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `calculate_length` is never used [INFO] [stdout] --> src/references.rs:4:4 [INFO] [stdout] | [INFO] [stdout] 4 | fn calculate_length(s: &String) -> usize { // s is a reference to a String [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `changeable` is never used [INFO] [stdout] --> src/references.rs:17:8 [INFO] [stdout] | [INFO] [stdout] 17 | pub fn changeable(some_string: &mut String) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `this_work` is never used [INFO] [stdout] --> src/references.rs:54:8 [INFO] [stdout] | [INFO] [stdout] 54 | pub fn this_work() { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `this_still_work` is never used [INFO] [stdout] --> src/references.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn this_still_work() { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `this_work_too` is never used [INFO] [stdout] --> src/references.rs:77:8 [INFO] [stdout] | [INFO] [stdout] 77 | pub fn this_work_too() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `no_dangling_references` is never used [INFO] [stdout] --> src/references.rs:94:8 [INFO] [stdout] | [INFO] [stdout] 94 | pub fn no_dangling_references() -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_word` is never used [INFO] [stdout] --> src/slice_type.rs:1:8 [INFO] [stdout] | [INFO] [stdout] 1 | pub fn first_word(s: &String) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `first_word_enhance` is never used [INFO] [stdout] --> src/slice_type.rs:13:8 [INFO] [stdout] | [INFO] [stdout] 13 | pub fn first_word_enhance(s: &String) -> &str { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `username`, `sign_in_count`, and `active` are never read [INFO] [stdout] --> src/struct_demo.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 2 | struct User { [INFO] [stdout] | ---- fields in this struct [INFO] [stdout] 3 | username: String, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] 4 | email: String, [INFO] [stdout] 5 | sign_in_count: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 6 | active: bool, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.27s [INFO] running `Command { std: "docker" "inspect" "d2d17e697b63d27e6ad2bf1454f0c51ebb3c0bcc4e1c257a48fdb25eaf2674ec", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d2d17e697b63d27e6ad2bf1454f0c51ebb3c0bcc4e1c257a48fdb25eaf2674ec", kill_on_drop: false }` [INFO] [stdout] d2d17e697b63d27e6ad2bf1454f0c51ebb3c0bcc4e1c257a48fdb25eaf2674ec