[INFO] cloning repository https://github.com/loggerhead/shadowsocks-rust
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/loggerhead/shadowsocks-rust" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floggerhead%2Fshadowsocks-rust", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floggerhead%2Fshadowsocks-rust'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 12c2eaecad3aa52eeb0bb62b161317d0e9453164
[INFO] testing loggerhead/shadowsocks-rust against 1.54.0 for beta-1.55-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Floggerhead%2Fshadowsocks-rust" "/workspace/builds/worker-116/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-116/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/loggerhead/shadowsocks-rust on toolchain 1.54.0
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/loggerhead/shadowsocks-rust
[INFO] finished tweaking git repo https://github.com/loggerhead/shadowsocks-rust
[INFO] tweaked toml for git repo https://github.com/loggerhead/shadowsocks-rust written to /workspace/builds/worker-116/source/Cargo.toml
[INFO] crate git repo https://github.com/loggerhead/shadowsocks-rust already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.54.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: file found to be present in multiple build targets: /workspace/builds/worker-116/source/src/bin/main.rs
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded isatty v0.1.6
[INFO] [stderr]   Downloaded num-traits v0.1.42
[INFO] [stderr]   Downloaded thread_local v0.2.7
[INFO] [stderr]   Downloaded slog-scope v0.2.2
[INFO] [stderr]   Downloaded openssl-sys v0.9.24
[INFO] [stderr]   Downloaded sig v1.0.0
[INFO] [stderr]   Downloaded crossbeam v0.2.12
[INFO] [stderr]   Downloaded slog v1.7.1
[INFO] [stderr]   Downloaded num v0.1.41
[INFO] [stderr]   Downloaded slog-stream v1.2.1
[INFO] [stderr]   Downloaded cc v1.0.4
[INFO] [stderr]   Downloaded aho-corasick v0.5.3
[INFO] [stderr]   Downloaded rand v0.3.20
[INFO] [stderr]   Downloaded cargo_metadata v0.2.3
[INFO] [stderr]   Downloaded openssl v0.9.23
[INFO] [stderr]   Downloaded serde v1.0.27
[INFO] [stderr]   Downloaded serde_derive v1.0.27
[INFO] [stderr]   Downloaded serde_json v1.0.9
[INFO] [stderr]   Downloaded term_size v0.2.3
[INFO] [stderr]   Downloaded strsim v0.5.2
[INFO] [stderr]   Downloaded clap v2.18.0
[INFO] [stderr]   Downloaded slog-extra v0.1.2
[INFO] [stderr]   Downloaded daemonize v0.2.3
[INFO] [stderr]   Downloaded miow v0.1.5
[INFO] [stderr]   Downloaded toml v0.1.30
[INFO] [stderr]   Downloaded regex v0.1.80
[INFO] [stderr]   Downloaded regex-syntax v0.3.9
[INFO] [stderr]   Downloaded semver v0.6.0
[INFO] [stderr]   Downloaded pulldown-cmark v0.0.15
[INFO] [stderr]   Downloaded itertools v0.6.5
[INFO] [stderr]   Downloaded serde_derive_internals v0.19.0
[INFO] [stderr]   Downloaded unicode-segmentation v0.1.3
[INFO] [stderr]   Downloaded regex v0.2.5
[INFO] [stderr]   Downloaded vec_map v0.6.0
[INFO] [stderr]   Downloaded clippy_lints v0.0.182
[INFO] [stderr]   Downloaded regex-syntax v0.4.2
[INFO] [stderr]   Downloaded clippy v0.0.182
[INFO] [stderr]   Downloaded lru_time_cache v0.5.0
[INFO] [stderr]   Downloaded slog-term v1.3.5
[INFO] [stderr]   Downloaded try_opt v0.1.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-116/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-116/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c8674a56e0f7333c6b86fbf3b1b6ab6831e234d3aa01508b4064774f2755c8f4
[INFO] running `Command { std: "docker" "start" "-a" "c8674a56e0f7333c6b86fbf3b1b6ab6831e234d3aa01508b4064774f2755c8f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c8674a56e0f7333c6b86fbf3b1b6ab6831e234d3aa01508b4064774f2755c8f4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c8674a56e0f7333c6b86fbf3b1b6ab6831e234d3aa01508b4064774f2755c8f4", kill_on_drop: false }`
[INFO] [stdout] c8674a56e0f7333c6b86fbf3b1b6ab6831e234d3aa01508b4064774f2755c8f4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-116/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-116/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5f3f39220e41d1c06f8e3726e23e66d07bb4779de49aa497b4b104d91974551e
[INFO] running `Command { std: "docker" "start" "-a" "5f3f39220e41d1c06f8e3726e23e66d07bb4779de49aa497b4b104d91974551e", kill_on_drop: false }`
[INFO] [stderr] warning: file found to be present in multiple build targets: /opt/rustwide/workdir/src/bin/main.rs
[INFO] [stderr]    Compiling libc v0.2.36
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling winapi v0.2.8
[INFO] [stderr]    Compiling cfg-if v0.1.2
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling num-traits v0.1.42
[INFO] [stderr]    Compiling slog v1.7.1
[INFO] [stderr]    Compiling lazy_static v1.0.0
[INFO] [stderr]    Compiling gcc v0.3.54
[INFO] [stderr]    Compiling bitflags v0.4.0
[INFO] [stderr]    Compiling rustc-serialize v0.3.24
[INFO] [stderr]    Compiling slab v0.1.3
[INFO] [stderr]    Compiling ansi_term v0.9.0
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling regex-syntax v0.3.9
[INFO] [stderr]    Compiling unicode-width v0.1.4
[INFO] [stderr]    Compiling strsim v0.5.2
[INFO] [stderr]    Compiling vec_map v0.6.0
[INFO] [stderr]    Compiling bytes v0.3.0
[INFO] [stderr]    Compiling utf8-ranges v0.1.3
[INFO] [stderr]    Compiling crossbeam v0.2.12
[INFO] [stderr]    Compiling unicode-segmentation v0.1.3
[INFO] [stderr]    Compiling lazy_static v0.2.11
[INFO] [stderr]    Compiling try_opt v0.1.1
[INFO] [stderr]    Compiling lru_time_cache v0.5.0
[INFO] [stderr]    Compiling byteorder v0.5.3
[INFO] [stderr]    Compiling fnv v1.0.6
[INFO] [stderr]    Compiling log v0.4.1
[INFO] [stderr]    Compiling unreachable v1.0.0
[INFO] [stderr]    Compiling log v0.3.9
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling ws2_32-sys v0.2.1
[INFO] [stderr]    Compiling num-integer v0.1.35
[INFO] [stderr]    Compiling thread_local v0.3.5
[INFO] [stderr]    Compiling time v0.1.39
[INFO] [stderr]    Compiling memchr v0.1.11
[INFO] [stderr]    Compiling net2 v0.2.31
[INFO] [stderr]    Compiling nix v0.5.1
[INFO] [stderr]    Compiling rand v0.3.20
[INFO] [stderr]    Compiling term_size v0.2.3
[INFO] [stderr]    Compiling isatty v0.1.6
[INFO] [stderr]    Compiling sig v1.0.0
[INFO] [stderr]    Compiling daemonize v0.2.3
[INFO] [stderr]    Compiling slog-scope v0.2.2
[INFO] [stderr]    Compiling num-iter v0.1.34
[INFO] [stderr]    Compiling slog-extra v0.1.2
[INFO] [stderr]    Compiling thread-id v2.0.0
[INFO] [stderr]    Compiling rust-crypto v0.2.36
[INFO] [stderr]    Compiling toml v0.1.30
[INFO] [stderr]    Compiling clap v2.18.0
[INFO] [stderr]    Compiling aho-corasick v0.5.3
[INFO] [stderr]    Compiling num v0.1.41
[INFO] [stderr]    Compiling miow v0.1.5
[INFO] [stderr]    Compiling slog-stream v1.2.1
[INFO] [stderr]    Compiling thread_local v0.2.7
[INFO] [stderr]    Compiling mio v0.5.1
[INFO] [stderr]    Compiling chrono v0.2.25
[INFO] [stderr]    Compiling regex v0.1.80
[INFO] [stderr]    Compiling slog-term v1.3.5
[INFO] [stderr]    Compiling shadowsocks v0.6.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]   --> src/util.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout] 9  | / macro_rules! io_err {
[INFO] [stdout] 10 | |     ($desc:expr) => ( io::Error::new(io::ErrorKind::Other, $desc) );
[INFO] [stdout] 11 | |     ($fmt:expr, $($arg:tt)*) => ( io::Error::new(io::ErrorKind::Other, format!($fmt, $($arg)*)) );
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/util.rs:34:66
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn handle_every_line<P: AsRef<Path>>(filepath: P, func: &mut FnMut(String)) -> Result<()> {
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(String)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/cipher.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     inner: Box<StreamCipher + 'static>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/cipher.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let cipher: Box<StreamCipher> = match method.belong_lib() {
[INFO] [stdout]    |                         ^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/crypto_lib.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     inner: Box<SynchronousStreamCipher + 'static>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/asyncdns.rs:134:33
[INFO] [stdout]     |
[INFO] [stdout] 134 |     callers: Dict<Token, RcCell<Caller>>,
[INFO] [stdout]     |                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/asyncdns.rs:180:49
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn add_caller(&mut self, caller: RcCell<Caller>) {
[INFO] [stdout]     |                                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/my_logger.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 |               io: &mut io::Write,
[INFO] [stdout]    |                        ^^^^^^^^^ help: use `dyn`: `dyn io::Write`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/network.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | /     lazy_static! {
[INFO] [stdout] 54 | |         static ref RE: Regex = Regex::new(r"[A-Za-z\d-]{1,63}$").unwrap();
[INFO] [stdout] 55 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/mod.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / lazy_static! {
[INFO] [stdout] 24 | |     pub static ref CONFIG: Config = init_config().unwrap_or_else(|e| {
[INFO] [stdout] 25 | |         println!("{:?}", e);
[INFO] [stdout] 26 | |         exit(1);
[INFO] [stdout] 27 | |     });
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/cmd.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | /     lazy_static! {
[INFO] [stdout] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stdout] 11 | |                                                  Config::default_config_path().display());
[INFO] [stdout] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |         };
[INFO] [stdout] 17 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/cmd.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | /     lazy_static! {
[INFO] [stdout] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stdout] 11 | |                                                  Config::default_config_path().display());
[INFO] [stdout] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |         };
[INFO] [stdout] 17 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead.
[INFO] [stdout]    --> src/config/running_config.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         env::home_dir()
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/crypto/encryptor.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 395 | /     lazy_static! {
[INFO] [stdout] 396 | |         static ref CACHE: Mutex<LruCache<(String, Method), Arc<Vec<u8>>>> =
[INFO] [stdout] 397 | |             Mutex::new(LruCache::with_capacity(KEY_CACHE_SIZE));
[INFO] [stdout] 398 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/network.rs:57:29
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let hostname = hostname.trim_right_matches('.');
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/config/mod.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/config/mod.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/config/toml.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |                     let mut tmp = Arc::make_mut(&mut server_conf);
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 19.46s
[INFO] running `Command { std: "docker" "inspect" "5f3f39220e41d1c06f8e3726e23e66d07bb4779de49aa497b4b104d91974551e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f3f39220e41d1c06f8e3726e23e66d07bb4779de49aa497b4b104d91974551e", kill_on_drop: false }`
[INFO] [stdout] 5f3f39220e41d1c06f8e3726e23e66d07bb4779de49aa497b4b104d91974551e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-116/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-116/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0c0f439114d38e19f06d78380c528ca3c222e467f629ad31be1ddd93ddfab4eb
[INFO] running `Command { std: "docker" "start" "-a" "0c0f439114d38e19f06d78380c528ca3c222e467f629ad31be1ddd93ddfab4eb", kill_on_drop: false }`
[INFO] [stderr] warning: file found to be present in multiple build targets: /opt/rustwide/workdir/src/bin/main.rs
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]   --> src/util.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout] 9  | / macro_rules! io_err {
[INFO] [stdout] 10 | |     ($desc:expr) => ( io::Error::new(io::ErrorKind::Other, $desc) );
[INFO] [stdout] 11 | |     ($fmt:expr, $($arg:tt)*) => ( io::Error::new(io::ErrorKind::Other, format!($fmt, $($arg)*)) );
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/util.rs:34:66
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn handle_every_line<P: AsRef<Path>>(filepath: P, func: &mut FnMut(String)) -> Result<()> {
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(String)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/cipher.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     inner: Box<StreamCipher + 'static>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/cipher.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let cipher: Box<StreamCipher> = match method.belong_lib() {
[INFO] [stdout]    |                         ^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/crypto_lib.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     inner: Box<SynchronousStreamCipher + 'static>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/asyncdns.rs:134:33
[INFO] [stdout]     |
[INFO] [stdout] 134 |     callers: Dict<Token, RcCell<Caller>>,
[INFO] [stdout]     |                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/asyncdns.rs:180:49
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn add_caller(&mut self, caller: RcCell<Caller>) {
[INFO] [stdout]     |                                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/my_logger.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 |               io: &mut io::Write,
[INFO] [stdout]    |                        ^^^^^^^^^ help: use `dyn`: `dyn io::Write`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/network.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | /     lazy_static! {
[INFO] [stdout] 54 | |         static ref RE: Regex = Regex::new(r"[A-Za-z\d-]{1,63}$").unwrap();
[INFO] [stdout] 55 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/mod.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / lazy_static! {
[INFO] [stdout] 24 | |     pub static ref CONFIG: Config = init_config().unwrap_or_else(|e| {
[INFO] [stdout] 25 | |         println!("{:?}", e);
[INFO] [stdout] 26 | |         exit(1);
[INFO] [stdout] 27 | |     });
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/cmd.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | /     lazy_static! {
[INFO] [stdout] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stdout] 11 | |                                                  Config::default_config_path().display());
[INFO] [stdout] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |         };
[INFO] [stdout] 17 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling shadowsocks v0.6.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/cmd.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | /     lazy_static! {
[INFO] [stdout] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stdout] 11 | |                                                  Config::default_config_path().display());
[INFO] [stdout] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |         };
[INFO] [stdout] 17 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead.
[INFO] [stdout]    --> src/config/running_config.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         env::home_dir()
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/crypto/encryptor.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 395 | /     lazy_static! {
[INFO] [stdout] 396 | |         static ref CACHE: Mutex<LruCache<(String, Method), Arc<Vec<u8>>>> =
[INFO] [stdout] 397 | |             Mutex::new(LruCache::with_capacity(KEY_CACHE_SIZE));
[INFO] [stdout] 398 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/network.rs:57:29
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let hostname = hostname.trim_right_matches('.');
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/config/mod.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/config/mod.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/config/toml.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |                     let mut tmp = Arc::make_mut(&mut server_conf);
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]   --> tests/encrypt.rs:39:1
[INFO] [stdout]    |
[INFO] [stdout] 39 | / macro_rules! assert_raw_encrypt {
[INFO] [stdout] 40 | |     ($cryptor:expr, $data:expr) => ( assert_do!($cryptor, raw_encrypt, $data) )
[INFO] [stdout] 41 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]   --> tests/encrypt.rs:43:1
[INFO] [stdout]    |
[INFO] [stdout] 43 | / macro_rules! assert_raw_decrypt {
[INFO] [stdout] 44 | |     ($cryptor:expr, $data:expr) => ( assert_do!($cryptor, raw_decrypt, $data) )
[INFO] [stdout] 45 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused macro definition
[INFO] [stdout]   --> src/util.rs:9:1
[INFO] [stdout]    |
[INFO] [stdout] 9  | / macro_rules! io_err {
[INFO] [stdout] 10 | |     ($desc:expr) => ( io::Error::new(io::ErrorKind::Other, $desc) );
[INFO] [stdout] 11 | |     ($fmt:expr, $($arg:tt)*) => ( io::Error::new(io::ErrorKind::Other, format!($fmt, $($arg)*)) );
[INFO] [stdout] 12 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/util.rs:34:66
[INFO] [stdout]    |
[INFO] [stdout] 34 | pub fn handle_every_line<P: AsRef<Path>>(filepath: P, func: &mut FnMut(String)) -> Result<()> {
[INFO] [stdout]    |                                                                  ^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(String)`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/cipher.rs:13:16
[INFO] [stdout]    |
[INFO] [stdout] 13 |     inner: Box<StreamCipher + 'static>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/cipher.rs:18:25
[INFO] [stdout]    |
[INFO] [stdout] 18 |         let cipher: Box<StreamCipher> = match method.belong_lib() {
[INFO] [stdout]    |                         ^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/crypto/crypto_lib.rs:16:16
[INFO] [stdout]    |
[INFO] [stdout] 16 |     inner: Box<SynchronousStreamCipher + 'static>,
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/asyncdns.rs:134:33
[INFO] [stdout]     |
[INFO] [stdout] 134 |     callers: Dict<Token, RcCell<Caller>>,
[INFO] [stdout]     |                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/asyncdns.rs:180:49
[INFO] [stdout]     |
[INFO] [stdout] 180 |     pub fn add_caller(&mut self, caller: RcCell<Caller>) {
[INFO] [stdout]     |                                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/my_logger.rs:68:24
[INFO] [stdout]    |
[INFO] [stdout] 68 |               io: &mut io::Write,
[INFO] [stdout]    |                        ^^^^^^^^^ help: use `dyn`: `dyn io::Write`
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stdout]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/network.rs:53:5
[INFO] [stdout]    |
[INFO] [stdout] 53 | /     lazy_static! {
[INFO] [stdout] 54 | |         static ref RE: Regex = Regex::new(r"[A-Za-z\d-]{1,63}$").unwrap();
[INFO] [stdout] 55 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/mod.rs:23:1
[INFO] [stdout]    |
[INFO] [stdout] 23 | / lazy_static! {
[INFO] [stdout] 24 | |     pub static ref CONFIG: Config = init_config().unwrap_or_else(|e| {
[INFO] [stdout] 25 | |         println!("{:?}", e);
[INFO] [stdout] 26 | |         exit(1);
[INFO] [stdout] 27 | |     });
[INFO] [stdout] 28 | | }
[INFO] [stdout]    | |_^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/cmd.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | /     lazy_static! {
[INFO] [stdout] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stdout] 11 | |                                                  Config::default_config_path().display());
[INFO] [stdout] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |         };
[INFO] [stdout] 17 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]   --> src/config/cmd.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | /     lazy_static! {
[INFO] [stdout] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stdout] 11 | |                                                  Config::default_config_path().display());
[INFO] [stdout] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stdout] ...  |
[INFO] [stdout] 16 | |         };
[INFO] [stdout] 17 | |     }
[INFO] [stdout]    | |_____^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated function `std::env::home_dir`: This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead.
[INFO] [stdout]    --> src/config/running_config.rs:102:9
[INFO] [stdout]     |
[INFO] [stdout] 102 |         env::home_dir()
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/crypto/encryptor.rs:395:5
[INFO] [stdout]     |
[INFO] [stdout] 395 | /     lazy_static! {
[INFO] [stdout] 396 | |         static ref CACHE: Mutex<LruCache<(String, Method), Arc<Vec<u8>>>> =
[INFO] [stdout] 397 | |             Mutex::new(LruCache::with_capacity(KEY_CACHE_SIZE));
[INFO] [stdout] 398 | |     }
[INFO] [stdout]     | |_____^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/network.rs:57:29
[INFO] [stdout]    |
[INFO] [stdout] 57 |     let hostname = hostname.trim_right_matches('.');
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/config/mod.rs:81:17
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stdout]    |                 ----^^^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/config/mod.rs:135:17
[INFO] [stdout]     |
[INFO] [stdout] 135 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stdout]     |                 ----^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/config/toml.rs:49:25
[INFO] [stdout]    |
[INFO] [stdout] 49 |                     let mut tmp = Arc::make_mut(&mut server_conf);
[INFO] [stdout]    |                         ----^^^
[INFO] [stdout]    |                         |
[INFO] [stdout]    |                         help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 18 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 4.71s
[INFO] running `Command { std: "docker" "inspect" "0c0f439114d38e19f06d78380c528ca3c222e467f629ad31be1ddd93ddfab4eb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0c0f439114d38e19f06d78380c528ca3c222e467f629ad31be1ddd93ddfab4eb", kill_on_drop: false }`
[INFO] [stdout] 0c0f439114d38e19f06d78380c528ca3c222e467f629ad31be1ddd93ddfab4eb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-116/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-116/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+1.54.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 3b1057653b2a3214aab158d95abb8a386dc1d2d3ec3612cbca8bdab7f1e92041
[INFO] running `Command { std: "docker" "start" "-a" "3b1057653b2a3214aab158d95abb8a386dc1d2d3ec3612cbca8bdab7f1e92041", kill_on_drop: false }`
[INFO] [stderr] warning: file found to be present in multiple build targets: /opt/rustwide/workdir/src/bin/main.rs
[INFO] [stderr] warning: unused macro definition
[INFO] [stderr]   --> src/util.rs:9:1
[INFO] [stderr]    |
[INFO] [stderr] 9  | / macro_rules! io_err {
[INFO] [stderr] 10 | |     ($desc:expr) => ( io::Error::new(io::ErrorKind::Other, $desc) );
[INFO] [stderr] 11 | |     ($fmt:expr, $($arg:tt)*) => ( io::Error::new(io::ErrorKind::Other, format!($fmt, $($arg)*)) );
[INFO] [stderr] 12 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/util.rs:34:66
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn handle_every_line<P: AsRef<Path>>(filepath: P, func: &mut FnMut(String)) -> Result<()> {
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(String)`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/crypto/cipher.rs:13:16
[INFO] [stderr]    |
[INFO] [stderr] 13 |     inner: Box<StreamCipher + 'static>,
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/crypto/cipher.rs:18:25
[INFO] [stderr]    |
[INFO] [stderr] 18 |         let cipher: Box<StreamCipher> = match method.belong_lib() {
[INFO] [stderr]    |                         ^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/crypto/crypto_lib.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 16 |     inner: Box<SynchronousStreamCipher + 'static>,
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/asyncdns.rs:134:33
[INFO] [stderr]     |
[INFO] [stderr] 134 |     callers: Dict<Token, RcCell<Caller>>,
[INFO] [stderr]     |                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/asyncdns.rs:180:49
[INFO] [stderr]     |
[INFO] [stderr] 180 |     pub fn add_caller(&mut self, caller: RcCell<Caller>) {
[INFO] [stderr]     |                                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/my_logger.rs:68:24
[INFO] [stderr]    |
[INFO] [stderr] 68 |               io: &mut io::Write,
[INFO] [stderr]    |                        ^^^^^^^^^ help: use `dyn`: `dyn io::Write`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/network.rs:53:5
[INFO] [stderr]    |
[INFO] [stderr] 53 | /     lazy_static! {
[INFO] [stderr] 54 | |         static ref RE: Regex = Regex::new(r"[A-Za-z\d-]{1,63}$").unwrap();
[INFO] [stderr] 55 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/config/mod.rs:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | / lazy_static! {
[INFO] [stderr] 24 | |     pub static ref CONFIG: Config = init_config().unwrap_or_else(|e| {
[INFO] [stderr] 25 | |         println!("{:?}", e);
[INFO] [stderr] 26 | |         exit(1);
[INFO] [stderr] 27 | |     });
[INFO] [stderr] 28 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/config/cmd.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr] 9  | /     lazy_static! {
[INFO] [stderr] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stderr] 11 | |                                                  Config::default_config_path().display());
[INFO] [stderr] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stderr] ...  |
[INFO] [stderr] 16 | |         };
[INFO] [stderr] 17 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/config/cmd.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr] 9  | /     lazy_static! {
[INFO] [stderr] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stderr] 11 | |                                                  Config::default_config_path().display());
[INFO] [stderr] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stderr] ...  |
[INFO] [stderr] 16 | |         };
[INFO] [stderr] 17 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::env::home_dir`: This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead.
[INFO] [stderr]    --> src/config/running_config.rs:102:9
[INFO] [stderr]     |
[INFO] [stderr] 102 |         env::home_dir()
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/crypto/encryptor.rs:395:5
[INFO] [stderr]     |
[INFO] [stderr] 395 | /     lazy_static! {
[INFO] [stderr] 396 | |         static ref CACHE: Mutex<LruCache<(String, Method), Arc<Vec<u8>>>> =
[INFO] [stderr] 397 | |             Mutex::new(LruCache::with_capacity(KEY_CACHE_SIZE));
[INFO] [stderr] 398 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stderr]   --> src/network.rs:57:29
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let hostname = hostname.trim_right_matches('.');
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/config/mod.rs:81:17
[INFO] [stderr]    |
[INFO] [stderr] 81 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stderr]    |                 ----^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/config/mod.rs:135:17
[INFO] [stderr]     |
[INFO] [stderr] 135 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stderr]     |                 ----^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/config/toml.rs:49:25
[INFO] [stderr]    |
[INFO] [stderr] 49 |                     let mut tmp = Arc::make_mut(&mut server_conf);
[INFO] [stderr]    |                         ----^^^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: 18 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition
[INFO] [stderr]   --> src/util.rs:9:1
[INFO] [stderr]    |
[INFO] [stderr] 9  | / macro_rules! io_err {
[INFO] [stderr] 10 | |     ($desc:expr) => ( io::Error::new(io::ErrorKind::Other, $desc) );
[INFO] [stderr] 11 | |     ($fmt:expr, $($arg:tt)*) => ( io::Error::new(io::ErrorKind::Other, format!($fmt, $($arg)*)) );
[INFO] [stderr] 12 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/util.rs:34:66
[INFO] [stderr]    |
[INFO] [stderr] 34 | pub fn handle_every_line<P: AsRef<Path>>(filepath: P, func: &mut FnMut(String)) -> Result<()> {
[INFO] [stderr]    |                                                                  ^^^^^^^^^^^^^ help: use `dyn`: `dyn FnMut(String)`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(bare_trait_objects)]` on by default
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/crypto/cipher.rs:13:16
[INFO] [stderr]    |
[INFO] [stderr] 13 |     inner: Box<StreamCipher + 'static>,
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/crypto/cipher.rs:18:25
[INFO] [stderr]    |
[INFO] [stderr] 18 |         let cipher: Box<StreamCipher> = match method.belong_lib() {
[INFO] [stderr]    |                         ^^^^^^^^^^^^ help: use `dyn`: `dyn StreamCipher`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/crypto/crypto_lib.rs:16:16
[INFO] [stderr]    |
[INFO] [stderr] 16 |     inner: Box<SynchronousStreamCipher + 'static>,
[INFO] [stderr]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use `dyn`: `dyn SynchronousStreamCipher + 'static`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/asyncdns.rs:134:33
[INFO] [stderr]     |
[INFO] [stderr] 134 |     callers: Dict<Token, RcCell<Caller>>,
[INFO] [stderr]     |                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]    --> src/asyncdns.rs:180:49
[INFO] [stderr]     |
[INFO] [stderr] 180 |     pub fn add_caller(&mut self, caller: RcCell<Caller>) {
[INFO] [stderr]     |                                                 ^^^^^^ help: use `dyn`: `dyn Caller`
[INFO] [stderr]     |
[INFO] [stderr]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]     = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stderr]   --> src/my_logger.rs:68:24
[INFO] [stderr]    |
[INFO] [stderr] 68 |               io: &mut io::Write,
[INFO] [stderr]    |                        ^^^^^^^^^ help: use `dyn`: `dyn io::Write`
[INFO] [stderr]    |
[INFO] [stderr]    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in the 2021 edition!
[INFO] [stderr]    = note: for more information, see issue #80165 <https://github.com/rust-lang/rust/issues/80165>
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/network.rs:53:5
[INFO] [stderr]    |
[INFO] [stderr] 53 | /     lazy_static! {
[INFO] [stderr] 54 | |         static ref RE: Regex = Regex::new(r"[A-Za-z\d-]{1,63}$").unwrap();
[INFO] [stderr] 55 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(deprecated)]` on by default
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/config/mod.rs:23:1
[INFO] [stderr]    |
[INFO] [stderr] 23 | / lazy_static! {
[INFO] [stderr] 24 | |     pub static ref CONFIG: Config = init_config().unwrap_or_else(|e| {
[INFO] [stderr] 25 | |         println!("{:?}", e);
[INFO] [stderr] 26 | |         exit(1);
[INFO] [stderr] 27 | |     });
[INFO] [stderr] 28 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/config/cmd.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr] 9  | /     lazy_static! {
[INFO] [stderr] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stderr] 11 | |                                                  Config::default_config_path().display());
[INFO] [stderr] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stderr] ...  |
[INFO] [stderr] 16 | |         };
[INFO] [stderr] 17 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]   --> src/config/cmd.rs:9:5
[INFO] [stderr]    |
[INFO] [stderr] 9  | /     lazy_static! {
[INFO] [stderr] 10 | |         static ref CONFIG_HELP: String = format!("path to config file\n[default: {}]",
[INFO] [stderr] 11 | |                                                  Config::default_config_path().display());
[INFO] [stderr] 12 | |         static ref NAME: &'static str = if cfg!(feature = "sslocal") {
[INFO] [stderr] ...  |
[INFO] [stderr] 16 | |         };
[INFO] [stderr] 17 | |     }
[INFO] [stderr]    | |_____^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated function `std::env::home_dir`: This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead.
[INFO] [stderr]    --> src/config/running_config.rs:102:9
[INFO] [stderr]     |
[INFO] [stderr] 102 |         env::home_dir()
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/crypto/encryptor.rs:395:5
[INFO] [stderr]     |
[INFO] [stderr] 395 | /     lazy_static! {
[INFO] [stderr] 396 | |         static ref CACHE: Mutex<LruCache<(String, Method), Arc<Vec<u8>>>> =
[INFO] [stderr] 397 | |             Mutex::new(LruCache::with_capacity(KEY_CACHE_SIZE));
[INFO] [stderr] 398 | |     }
[INFO] [stderr]     | |_____^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `__lazy_static_create` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated associated function `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stderr]   --> src/network.rs:57:29
[INFO] [stderr]    |
[INFO] [stderr] 57 |     let hostname = hostname.trim_right_matches('.');
[INFO] [stderr]    |                             ^^^^^^^^^^^^^^^^^^ help: replace the use of the deprecated associated function: `trim_end_matches`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/config/mod.rs:81:17
[INFO] [stderr]    |
[INFO] [stderr] 81 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stderr]    |                 ----^^^
[INFO] [stderr]    |                 |
[INFO] [stderr]    |                 help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/config/mod.rs:135:17
[INFO] [stderr]     |
[INFO] [stderr] 135 |             let mut tmp = Arc::make_mut(&mut conf.proxy_conf);
[INFO] [stderr]     |                 ----^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/config/toml.rs:49:25
[INFO] [stderr]    |
[INFO] [stderr] 49 |                     let mut tmp = Arc::make_mut(&mut server_conf);
[INFO] [stderr]    |                         ----^^^
[INFO] [stderr]    |                         |
[INFO] [stderr]    |                         help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: 18 warnings emitted
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition
[INFO] [stderr]   --> tests/encrypt.rs:39:1
[INFO] [stderr]    |
[INFO] [stderr] 39 | / macro_rules! assert_raw_encrypt {
[INFO] [stderr] 40 | |     ($cryptor:expr, $data:expr) => ( assert_do!($cryptor, raw_encrypt, $data) )
[INFO] [stderr] 41 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_macros)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused macro definition
[INFO] [stderr]   --> tests/encrypt.rs:43:1
[INFO] [stderr]    |
[INFO] [stderr] 43 | / macro_rules! assert_raw_decrypt {
[INFO] [stderr] 44 | |     ($cryptor:expr, $data:expr) => ( assert_do!($cryptor, raw_decrypt, $data) )
[INFO] [stderr] 45 | | }
[INFO] [stderr]    | |_^
[INFO] [stderr] 
[INFO] [stderr] warning: 2 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.04s
[INFO] [stderr]      Running unittests (/opt/rustwide/target/debug/deps/shadowsocks-9b46e10f911f2029)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test asyncdns::test::ipv6_block_resolve ... ignored
[INFO] [stdout] test asyncdns::test::parse_response ... ok
[INFO] [stdout] test asyncdns::test::ipv4_block_resolve ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- asyncdns::test::ipv4_block_resolve stdout ----
[INFO] [stdout] block_resolve failed: Custom { kind: Other, error: "failed to lookup address information: Temporary failure in name resolution" }
[INFO] [stdout] thread 'asyncdns::test::ipv4_block_resolve' panicked at 'assertion failed: false', src/asyncdns.rs:784:21
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55750137a250 - std::backtrace_rs::backtrace::libunwind::trace::h34055254b57d8e79
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
[INFO] [stdout]    1:     0x55750137a250 - std::backtrace_rs::backtrace::trace_unsynchronized::h8f1e3fbd9afff6ec
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55750137a250 - std::sys_common::backtrace::_print_fmt::h3a99a796b770c360
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:67:5
[INFO] [stdout]    3:     0x55750137a250 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h32d1f94a80615d18
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:46:22
[INFO] [stdout]    4:     0x55750139cf4c - core::fmt::write::h306731c068f7162c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/fmt/mod.rs:1110:17
[INFO] [stdout]    5:     0x557501373fc5 - std::io::Write::write_fmt::h87f19b0a2cd190bc
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/io/mod.rs:1588:15
[INFO] [stdout]    6:     0x55750137c3db - std::sys_common::backtrace::_print::h5abaa2601a852287
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:49:5
[INFO] [stdout]    7:     0x55750137c3db - std::sys_common::backtrace::print::h8d81445442bb638f
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:36:9
[INFO] [stdout]    8:     0x55750137c3db - std::panicking::default_hook::{{closure}}::hcfe804496a9fa747
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:208:50
[INFO] [stdout]    9:     0x55750137beec - std::panicking::default_hook::hbea8e3ccf2ba8901
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:222:9
[INFO] [stdout]   10:     0x55750137caa4 - std::panicking::rust_panic_with_hook::h7ee9e1a2d0f8975a
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:622:17
[INFO] [stdout]   11:     0x55750137c557 - std::panicking::begin_panic_handler::{{closure}}::h8ab3b4491718b2c7
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:517:13
[INFO] [stdout]   12:     0x55750137a74c - std::sys_common::backtrace::__rust_end_short_backtrace::hd489062ffa586a9f
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:141:18
[INFO] [stdout]   13:     0x55750137c4e9 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:515:5
[INFO] [stdout]   14:     0x5575012077a1 - core::panicking::panic_fmt::hca6330e3e14086b4
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:92:14
[INFO] [stdout]   15:     0x5575012076ed - core::panicking::panic::h1a48d878ff3dcd40
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:50:5
[INFO] [stdout]   16:     0x55750122996b - shadowsocks::asyncdns::test::test_block_resolve::ha500a813aa48c45f
[INFO] [stdout]                                at /opt/rustwide/workdir/src/asyncdns.rs:784:21
[INFO] [stdout]   17:     0x557501229cb8 - shadowsocks::asyncdns::test::ipv4_block_resolve::hddaa75a6fcf69c02
[INFO] [stdout]                                at /opt/rustwide/workdir/src/asyncdns.rs:792:9
[INFO] [stdout]   18:     0x557501229c9a - shadowsocks::asyncdns::test::ipv4_block_resolve::{{closure}}::h7d0a8d76a828ae84
[INFO] [stdout]                                at /opt/rustwide/workdir/src/asyncdns.rs:791:5
[INFO] [stdout]   19:     0x557501216cae - core::ops::function::FnOnce::call_once::h29a67416ccac3acc
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   20:     0x55750125c7f3 - core::ops::function::FnOnce::call_once::h152e7e439ff59e19
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   21:     0x55750125c7f3 - test::__rust_begin_short_backtrace::h0908f3b1fdbb72ab
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:577:5
[INFO] [stdout]   22:     0x55750125b2b0 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf6d2a51e5587546c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   23:     0x55750125b2b0 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h8af660f3a89ef593
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
[INFO] [stdout]   24:     0x55750125b2b0 - std::panicking::try::do_call::hd36aef60f84b6d36
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
[INFO] [stdout]   25:     0x55750125b2b0 - std::panicking::try::h9932b4480e69817c
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
[INFO] [stdout]   26:     0x55750125b2b0 - std::panic::catch_unwind::h6aa177099cfff5f8
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
[INFO] [stdout]   27:     0x55750125b2b0 - test::run_test_in_process::h5884d6f2d99e20c3
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:600:18
[INFO] [stdout]   28:     0x55750125b2b0 - test::run_test::run_test_inner::{{closure}}::h6fdc58c6d5f5b6e3
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:492:39
[INFO] [stdout]   29:     0x557501234962 - test::run_test::run_test_inner::{{closure}}::h408365d67a78ade8
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/test/src/lib.rs:519:37
[INFO] [stdout]   30:     0x557501234962 - std::sys_common::backtrace::__rust_begin_short_backtrace::hb560b77c4f701523
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys_common/backtrace.rs:125:18
[INFO] [stdout]   31:     0x557501238518 - std::thread::Builder::spawn_unchecked::{{closure}}::{{closure}}::hf2e7831dad93c597
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/thread/mod.rs:481:17
[INFO] [stdout]   32:     0x557501238518 - <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hd2e08783d8be4d02
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
[INFO] [stdout]   33:     0x557501238518 - std::panicking::try::do_call::h062597b7acfd6b82
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
[INFO] [stdout]   34:     0x557501238518 - std::panicking::try::h0d7b79db04c14552
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
[INFO] [stdout]   35:     0x557501238518 - std::panic::catch_unwind::hb01a0b5e7c8cd43b
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
[INFO] [stdout]   36:     0x557501238518 - std::thread::Builder::spawn_unchecked::{{closure}}::h5bde48cc887e0d1e
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/thread/mod.rs:480:30
[INFO] [stdout]   37:     0x557501238518 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h745ea30807a29e55
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:227:5
[INFO] [stdout]   38:     0x557501381a37 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7ece6cfefaff1005
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   39:     0x557501381a37 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb8b48e55c21f193e
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/alloc/src/boxed.rs:1575:9
[INFO] [stdout]   40:     0x557501381a37 - std::sys::unix::thread::Thread::new::thread_start::h8c7c4450dba62914
[INFO] [stdout]                                at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/sys/unix/thread.rs:71:17
[INFO] [stdout]   41:     0x7f5356408609 - start_thread
[INFO] [stdout]   42:     0x7f53561d8293 - clone
[INFO] [stdout]   43:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     asyncdns::test::ipv4_block_resolve
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 1 passed; 1 failed; 1 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass '--lib'
[INFO] running `Command { std: "docker" "inspect" "3b1057653b2a3214aab158d95abb8a386dc1d2d3ec3612cbca8bdab7f1e92041", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "3b1057653b2a3214aab158d95abb8a386dc1d2d3ec3612cbca8bdab7f1e92041", kill_on_drop: false }`
[INFO] [stdout] 3b1057653b2a3214aab158d95abb8a386dc1d2d3ec3612cbca8bdab7f1e92041
