[INFO] cloning repository https://github.com/Capppe/playerctl_wrapper_rs [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Capppe/playerctl_wrapper_rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCapppe%2Fplayerctl_wrapper_rs", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCapppe%2Fplayerctl_wrapper_rs'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 15ef315b6d3a25e661bea59bf71d2a13cf2352fd [INFO] testing Capppe/playerctl_wrapper_rs against 1.99.0-beta.8 for beta-1.100-4 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCapppe%2Fplayerctl_wrapper_rs" "/workspace/builds/worker-6-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Capppe/playerctl_wrapper_rs [INFO] finished tweaking git repo https://github.com/Capppe/playerctl_wrapper_rs [INFO] tweaked toml for git repo https://github.com/Capppe/playerctl_wrapper_rs written to /workspace/builds/worker-6-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Capppe/playerctl_wrapper_rs on toolchain 1.99.0-beta.8 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Capppe/playerctl_wrapper_rs 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" "+1.99.0-beta.8" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded dbus-tokio v0.7.6 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:77db811e55d90add9212f6832c23229e3de5f1c1f9905e8cb07319ea15df73ac" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] 900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907 [INFO] running `Command { std: "docker" "start" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling pkg-config v0.3.30 [INFO] [stderr] Compiling futures-core v0.3.30 [INFO] [stderr] Compiling smallvec v1.13.2 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Compiling futures-channel v0.3.30 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling parking_lot_core v0.9.10 [INFO] [stderr] Compiling parking_lot v0.12.3 [INFO] [stderr] Compiling libdbus-sys v0.2.5 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling tokio v1.40.0 [INFO] [stderr] Compiling futures-util v0.3.30 [INFO] [stderr] Compiling dbus v0.9.7 [INFO] [stderr] Compiling dbus-tokio v0.7.6 [INFO] [stderr] Compiling playerctl_wrapper v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/playerctl.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/playerctld.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | / fn call_method_no_return(&self, method: &str, args: A) -> Result<(), String> [INFO] [stdout] 107 | | where [INFO] [stdout] 108 | | A: dbus::arg::AppendAll, [INFO] [stdout] 109 | | Self: for<'a> DBusProxy<'a> + DBusItem, [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: ReadAll` will fail [INFO] [stdout] --> src/playerctld.rs:114:14 [INFO] [stdout] | [INFO] [stdout] 114 | .method_call(self.get_interface(), method, args) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 114 | .method_call::<(), _, _, _>(self.get_interface(), method, args) [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/introspectable.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/media_player.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/peer.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/player.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/playerctld.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 27 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 28 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 29 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 30 | ) -> Result, String> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 30 | ) -> Result, String> [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/playlists.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 35 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 36 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 37 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 38 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/playlists.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 74 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 74 | ) -> Result>, String> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/properties.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 37 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 39 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/tracklist.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 37 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 39 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 26.80s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: playerctl_wrapper v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2` [INFO] running `Command { std: "docker" "inspect" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/playerctl.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/playerctld.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | / fn call_method_no_return(&self, method: &str, args: A) -> Result<(), String> [INFO] [stdout] 107 | | where [INFO] [stdout] 108 | | A: dbus::arg::AppendAll, [INFO] [stdout] 109 | | Self: for<'a> DBusProxy<'a> + DBusItem, [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: ReadAll` will fail [INFO] [stdout] --> src/playerctld.rs:114:14 [INFO] [stdout] | [INFO] [stdout] 114 | .method_call(self.get_interface(), method, args) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 114 | .method_call::<(), _, _, _>(self.get_interface(), method, args) [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/introspectable.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/media_player.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/peer.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/player.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Compiling playerctl_wrapper v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/playerctld.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 27 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 28 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 29 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 30 | ) -> Result, String> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 30 | ) -> Result, String> [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/playlists.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 35 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 36 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 37 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 38 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/playlists.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 74 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 74 | ) -> Result>, String> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/properties.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 37 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 39 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/tracklist.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 37 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 39 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::HashMap` [INFO] [stdout] --> src/playerctl.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::collections::HashMap; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: this function depends on never type fallback being `()` [INFO] [stdout] --> src/playerctld.rs:106:5 [INFO] [stdout] | [INFO] [stdout] 106 | / fn call_method_no_return(&self, method: &str, args: A) -> Result<(), String> [INFO] [stdout] 107 | | where [INFO] [stdout] 108 | | A: dbus::arg::AppendAll, [INFO] [stdout] 109 | | Self: for<'a> DBusProxy<'a> + DBusItem, [INFO] [stdout] | |_______________________________________________^ [INFO] [stdout] | [INFO] [stdout] = help: specify the types explicitly [INFO] [stdout] note: in edition 2024, the requirement `!: ReadAll` will fail [INFO] [stdout] --> src/playerctld.rs:114:14 [INFO] [stdout] | [INFO] [stdout] 114 | .method_call(self.get_interface(), method, args) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stdout] = note: for more information, see [INFO] [stdout] = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stdout] help: use `()` annotations to avoid fallback changes [INFO] [stdout] | [INFO] [stdout] 114 | .method_call::<(), _, _, _>(self.get_interface(), method, args) [INFO] [stdout] | +++++++++++++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/introspectable.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/media_player.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/peer.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/player.rs:35:17 [INFO] [stdout] | [INFO] [stdout] 32 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 33 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 34 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 35 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/playerctld.rs:30:17 [INFO] [stdout] | [INFO] [stdout] 27 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 28 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 29 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 30 | ) -> Result, String> [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 30 | ) -> Result, String> [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/playlists.rs:38:17 [INFO] [stdout] | [INFO] [stdout] 35 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 36 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 37 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 38 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stdout] --> src/playlists.rs:69:9 [INFO] [stdout] | [INFO] [stdout] 69 | &self, [INFO] [stdout] | ^^^^^ the lifetime is elided here [INFO] [stdout] ... [INFO] [stdout] 74 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: use `'_` for type paths [INFO] [stdout] | [INFO] [stdout] 74 | ) -> Result>, String> { [INFO] [stdout] | ++++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/properties.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 37 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 39 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stdout] --> src/tracklist.rs:40:17 [INFO] [stdout] | [INFO] [stdout] 37 | &'a self, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 38 | dest: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 39 | object_path: Option<&'a str>, [INFO] [stdout] | -- the lifetime is named here [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | | | [INFO] [stdout] | | the same lifetime is elided here [INFO] [stdout] | the same lifetime is hidden here [INFO] [stdout] | [INFO] [stdout] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stdout] help: consistently use `'a` [INFO] [stdout] | [INFO] [stdout] 40 | ) -> Result, String> { [INFO] [stdout] | +++ ++ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 8.91s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: playerctl_wrapper v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] running `Command { std: "docker" "inspect" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907" "/opt/rustwide/cargo-home/bin/cargo" "+1.99.0-beta.8" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `std::collections::HashMap` [INFO] [stderr] --> src/playerctl.rs:1:5 [INFO] [stderr] | [INFO] [stderr] 1 | use std::collections::HashMap; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: this function depends on never type fallback being `()` [INFO] [stderr] --> src/playerctld.rs:106:5 [INFO] [stderr] | [INFO] [stderr] 106 | / fn call_method_no_return(&self, method: &str, args: A) -> Result<(), String> [INFO] [stderr] 107 | | where [INFO] [stderr] 108 | | A: dbus::arg::AppendAll, [INFO] [stderr] 109 | | Self: for<'a> DBusProxy<'a> + DBusItem, [INFO] [stderr] | |_______________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: specify the types explicitly [INFO] [stderr] note: in edition 2024, the requirement `!: ReadAll` will fail [INFO] [stderr] --> src/playerctld.rs:114:14 [INFO] [stderr] | [INFO] [stderr] 114 | .method_call(self.get_interface(), method, args) [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in Rust 2024 and in a future release in all editions! [INFO] [stderr] = note: for more information, see [INFO] [stderr] = note: `#[warn(dependency_on_unit_never_type_fallback)]` (part of `#[warn(rust_2024_compatibility)]`) on by default [INFO] [stderr] help: use `()` annotations to avoid fallback changes [INFO] [stderr] | [INFO] [stderr] 114 | .method_call::<(), _, _, _>(self.get_interface(), method, args) [INFO] [stderr] | +++++++++++++++ [INFO] [stderr] [INFO] [stderr] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/introspectable.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 32 | &'a self, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 33 | dest: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 34 | object_path: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 35 | ) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] = note: `#[warn(mismatched_lifetime_syntaxes)]` on by default [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 35 | ) -> Result, String> { [INFO] [stderr] | +++ ++ [INFO] [stderr] [INFO] [stderr] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/media_player.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 32 | &'a self, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 33 | dest: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 34 | object_path: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 35 | ) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 35 | ) -> Result, String> { [INFO] [stderr] | +++ ++ [INFO] [stderr] [INFO] [stderr] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/peer.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 32 | &'a self, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 33 | dest: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 34 | object_path: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 35 | ) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 35 | ) -> Result, String> { [INFO] [stderr] | +++ ++ [INFO] [stderr] [INFO] [stderr] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/player.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 32 | &'a self, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 33 | dest: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 34 | object_path: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 35 | ) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 35 | ) -> Result, String> { [INFO] [stderr] | +++ ++ [INFO] [stderr] [INFO] [stderr] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/playerctld.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 27 | &'a self, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 28 | dest: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 29 | object_path: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 30 | ) -> Result, String> [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 30 | ) -> Result, String> [INFO] [stderr] | +++ ++ [INFO] [stderr] [INFO] [stderr] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/playlists.rs:38:17 [INFO] [stderr] | [INFO] [stderr] 35 | &'a self, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 36 | dest: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 37 | object_path: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 38 | ) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 38 | ) -> Result, String> { [INFO] [stderr] | +++ ++ [INFO] [stderr] [INFO] [stderr] warning: hiding a lifetime that's elided elsewhere is confusing [INFO] [stderr] --> src/playlists.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | &self, [INFO] [stderr] | ^^^^^ the lifetime is elided here [INFO] [stderr] ... [INFO] [stderr] 74 | ) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^ the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: use `'_` for type paths [INFO] [stderr] | [INFO] [stderr] 74 | ) -> Result>, String> { [INFO] [stderr] | ++++ [INFO] [stderr] [INFO] [stderr] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/properties.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 37 | &'a self, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 38 | dest: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 39 | object_path: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 40 | ) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 40 | ) -> Result, String> { [INFO] [stderr] | +++ ++ [INFO] [stderr] [INFO] [stderr] warning: hiding or eliding a lifetime that's named elsewhere is confusing [INFO] [stderr] --> src/tracklist.rs:40:17 [INFO] [stderr] | [INFO] [stderr] 37 | &'a self, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 38 | dest: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 39 | object_path: Option<&'a str>, [INFO] [stderr] | -- the lifetime is named here [INFO] [stderr] 40 | ) -> Result, String> { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | | | [INFO] [stderr] | | the same lifetime is elided here [INFO] [stderr] | the same lifetime is hidden here [INFO] [stderr] | [INFO] [stderr] = help: the same lifetime is referred to in inconsistent ways, making the signature confusing [INFO] [stderr] help: consistently use `'a` [INFO] [stderr] | [INFO] [stderr] 40 | ) -> Result, String> { [INFO] [stderr] | +++ ++ [INFO] [stderr] [INFO] [stderr] warning: `playerctl_wrapper` (lib) generated 11 warnings (run `cargo fix --lib -p playerctl_wrapper` to apply 11 suggestions) [INFO] [stderr] warning: `playerctl_wrapper` (lib test) generated 11 warnings (11 duplicates) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.08s [INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: playerctl_wrapper v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 3` [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/playerctl_wrapper-4aea937d9f158d3a) [INFO] [stderr] Running tests/introspectable_tests.rs (/opt/rustwide/target/debug/deps/introspectable_tests-1a4fe6cddd70370a) [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test tests::test_method_introspect ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- tests::test_method_introspect stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'tests::test_method_introspect' (564) panicked at tests/introspectable_tests.rs:9:39: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: D-Bus error: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11 (org.freedesktop.DBus.Error.NotSupported) [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x5bdeb80bbeb1 - std[70759c8f55707aa4]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x5bdeb80bbeb1 - std[70759c8f55707aa4]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x5bdeb80bbeb1 - std[70759c8f55707aa4]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x5bdeb80bbeb1 - <::print::DisplayBacktrace as core[df12db4294e9bfd3]::fmt::Display>::fmt [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x5bdeb80d017a - ::fmt [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x5bdeb80d017a - core[df12db4294e9bfd3]::fmt::write [INFO] [stdout] 6: 0x5bdeb80c03fc - core[df12db4294e9bfd3]::io::write::default_write_fmt::> [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/io/write.rs:402:11 [INFO] [stdout] 7: 0x5bdeb80c03fc - as core[df12db4294e9bfd3]::io::write::Write>::write_fmt [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/io/write.rs:335:13 [INFO] [stdout] 8: 0x5bdeb80984a6 - ::print [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x5bdeb80984a6 - std[70759c8f55707aa4]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x5bdeb80b4619 - std[70759c8f55707aa4]::panicking::default_hook [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x5bdeb8039a50 - core[df12db4294e9bfd3]::ops::function::Fn<(&'a std[70759c8f55707aa4]::panic::PanicHookInfo<'b>,), Output = ()> + core[df12db4294e9bfd3]::marker::Send + core[df12db4294e9bfd3]::marker::Sync> as core[df12db4294e9bfd3]::ops::function::Fn<(&std[70759c8f55707aa4]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/alloc/src/boxed.rs:2334:9 [INFO] [stdout] 12: 0x5bdeb8039a50 - test[9d35eded1c95d3be]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x5bdeb80b47d2 - core[df12db4294e9bfd3]::ops::function::Fn<(&'a std[70759c8f55707aa4]::panic::PanicHookInfo<'b>,), Output = ()> + core[df12db4294e9bfd3]::marker::Send + core[df12db4294e9bfd3]::marker::Sync> as core[df12db4294e9bfd3]::ops::function::Fn<(&std[70759c8f55707aa4]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/alloc/src/boxed.rs:2334:9 [INFO] [stdout] 14: 0x5bdeb80b47d2 - std[70759c8f55707aa4]::panicking::panic_with_hook [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:823:13 [INFO] [stdout] 15: 0x5bdeb8098552 - std[70759c8f55707aa4]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:688:13 [INFO] [stdout] 16: 0x5bdeb80912a9 - std[70759c8f55707aa4]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x5bdeb809914d - __rustc[8fa7c3cbc660c2b3]::rust_begin_unwind [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:679:5 [INFO] [stdout] 18: 0x5bdeb80d092c - core[df12db4294e9bfd3]::panicking::panic_fmt [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x5bdeb80d0682 - core[df12db4294e9bfd3]::result::unwrap_failed [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/result.rs:1871:5 [INFO] [stdout] 20: 0x5bdeb802c7c0 - >::unwrap [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/result.rs:1232:23 [INFO] [stdout] 21: 0x5bdeb802c7c0 - introspectable_tests[6e2902533295c4e]::tests::test_method_introspect [INFO] [stdout] at /opt/rustwide/workdir/tests/introspectable_tests.rs:9:39 [INFO] [stdout] 22: 0x5bdeb802c617 - introspectable_tests[6e2902533295c4e]::tests::test_method_introspect::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/tests/introspectable_tests.rs:8:32 [INFO] [stdout] 23: 0x5bdeb802cce6 - >::call_once [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x5bdeb802cd3b - core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String> as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x5bdeb802cd3b - test[9d35eded1c95d3be]::__rust_begin_short_backtrace::, fn() -> core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/test/src/lib.rs:733:18 [INFO] [stdout] 26: 0x5bdeb803a3a5 - test[9d35eded1c95d3be]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/test/src/lib.rs:756:74 [INFO] [stdout] 27: 0x5bdeb803a3a5 - as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x5bdeb803a3a5 - std[70759c8f55707aa4]::panicking::catch_unwind::do_call::, core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:576:43 [INFO] [stdout] 29: 0x5bdeb803a3a5 - std[70759c8f55707aa4]::panicking::catch_unwind::, core[df12db4294e9bfd3]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x5bdeb803a3a5 - std[70759c8f55707aa4]::panic::catch_unwind::, core[df12db4294e9bfd3]::result::Result<(), alloc[2182bb758b4b3781]::string::String>> [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x5bdeb803a3a5 - test[9d35eded1c95d3be]::run_test_in_process [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/test/src/lib.rs:756:27 [INFO] [stdout] 32: 0x5bdeb803a3a5 - test[9d35eded1c95d3be]::run_test::{closure#0} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/test/src/lib.rs:677:43 [INFO] [stdout] 33: 0x5bdeb8033c64 - test[9d35eded1c95d3be]::run_test::{closure#1} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/test/src/lib.rs:707:41 [INFO] [stdout] 34: 0x5bdeb8033c64 - std[70759c8f55707aa4]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x5bdeb803d502 - std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 36: 0x5bdeb803d502 - ::{closure#1}::{closure#0}> as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x5bdeb803d502 - std[70759c8f55707aa4]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:576:43 [INFO] [stdout] 38: 0x5bdeb803d502 - std[70759c8f55707aa4]::panicking::catch_unwind::<(), core[df12db4294e9bfd3]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x5bdeb803d502 - std[70759c8f55707aa4]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x5bdeb803d502 - std[70759c8f55707aa4]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 41: 0x5bdeb803d502 - ::{closure#1} as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x5bdeb80bb789 - + core[df12db4294e9bfd3]::marker::Send> as core[df12db4294e9bfd3]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/alloc/src/boxed.rs:2320:9 [INFO] [stdout] 43: 0x5bdeb80bb789 - ::new::thread_start [INFO] [stdout] at /rustc/dfb0accb7f508ae8be965d8629557221c889dd98/library/std/src/sys/thread/unix.rs:123:17 [INFO] [stdout] 44: 0x70efad163dfa - [INFO] [stdout] 45: 0x70efad1f73d4 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] tests::test_method_introspect [INFO] [stdout] [INFO] [stdout] test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.10s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--test introspectable_tests` [INFO] running `Command { std: "docker" "inspect" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907", kill_on_drop: false }` [INFO] [stdout] 900927b52d9067474ce8530f0659c63df8492109d87df72a0bd04f0f7953b907