[INFO] updating cached repository xurtis/isolate [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/xurtis/isolate [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/xurtis/isolate" "work/ex/clippy-test-run/sources/stable/gh/xurtis/isolate"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/xurtis/isolate'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/xurtis/isolate" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/xurtis/isolate"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/xurtis/isolate'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] b3bc1fc1fb3135f72a6b685fcbd3e0553abcc442 [INFO] sha for GitHub repo xurtis/isolate: b3bc1fc1fb3135f72a6b685fcbd3e0553abcc442 [INFO] validating manifest of xurtis/isolate on toolchain stable [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] validating manifest of xurtis/isolate on toolchain stable+rustflags=-Dclippy::into_iter_on_array [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started frobbing xurtis/isolate [INFO] finished frobbing xurtis/isolate [INFO] frobbed toml for xurtis/isolate written to work/ex/clippy-test-run/sources/stable/gh/xurtis/isolate/Cargo.toml [INFO] started frobbing xurtis/isolate [INFO] finished frobbing xurtis/isolate [INFO] frobbed toml for xurtis/isolate written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/xurtis/isolate/Cargo.toml [INFO] crate xurtis/isolate has a lockfile. skipping [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting xurtis/isolate against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-2/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/xurtis/isolate:/opt/crater/workdir:ro,Z" "-v" "/mnt/big/crater/work/local/cargo-home:/opt/crater/cargo-home:ro,Z" "-v" "/mnt/big/crater/work/local/rustup-home:/opt/crater/rustup-home:ro,Z" "-e" "USER_ID=1000" "-e" "SOURCE_DIR=/opt/crater/workdir" "-e" "MAP_USER_ID=1000" "-e" "CARGO_TARGET_DIR=/opt/crater/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/crater/cargo-home" "-e" "RUSTUP_HOME=/opt/crater/rustup-home" "-w" "/opt/crater/workdir" "-m" "1536M" "--network" "none" "rustops/crates-build-env" "/opt/crater/cargo-home/bin/cargo" "+stable" "clippy" "--frozen" "--all" "--all-targets"` [INFO] [stdout] 7895003e567d3887c1c846dd08164e7f262e212d97585e10eb6427879c953a1f [INFO] running `"docker" "start" "-a" "7895003e567d3887c1c846dd08164e7f262e212d97585e10eb6427879c953a1f"` [INFO] [stderr] Compiling serde v1.0.64 [INFO] [stderr] Checking strsim v0.6.0 [INFO] [stderr] Compiling proc-macro2 v0.4.4 [INFO] [stderr] Checking memchr v2.0.1 [INFO] [stderr] Checking errno v0.2.3 [INFO] [stderr] Checking nix v0.9.0 [INFO] [stderr] Checking thread_local v0.3.5 [INFO] [stderr] Checking backtrace-sys v0.1.23 [INFO] [stderr] Checking backtrace v0.3.8 [INFO] [stderr] Checking aho-corasick v0.6.4 [INFO] [stderr] Checking error-chain v0.11.0 [INFO] [stderr] Checking regex v0.2.11 [INFO] [stderr] Compiling quote v0.6.3 [INFO] [stderr] Compiling syn v0.14.1 [INFO] [stderr] Checking unshare v0.2.0 [INFO] [stderr] Compiling serde_derive v1.0.64 [INFO] [stderr] Checking toml v0.4.6 [INFO] [stderr] Checking docopt v0.8.3 [INFO] [stderr] Checking isolate v0.1.2 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/context.rs:227:2 [INFO] [stderr] | [INFO] [stderr] 227 | return EXIT_SUCCESS; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `EXIT_SUCCESS` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/control_group.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/control_group.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/ipc.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/ipc.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `PathBuf` [INFO] [stderr] --> src/namespace/mount.rs:3:23 [INFO] [stderr] | [INFO] [stderr] 3 | use std::path::{Path, PathBuf}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/network.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/network.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/pid.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/pid.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/uts.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/uts.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/context.rs:227:2 [INFO] [stderr] | [INFO] [stderr] 227 | return EXIT_SUCCESS; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `EXIT_SUCCESS` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_return)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/control_group.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_imports)] on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/control_group.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/ipc.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/ipc.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `PathBuf` [INFO] [stderr] --> src/namespace/mount.rs:3:23 [INFO] [stderr] | [INFO] [stderr] 3 | use std::path::{Path, PathBuf}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/network.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/network.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/pid.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/pid.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::error::*` [INFO] [stderr] --> src/namespace/uts.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use ::error::*; [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `::Child` [INFO] [stderr] --> src/namespace/uts.rs:7:5 [INFO] [stderr] | [INFO] [stderr] 7 | use ::Child; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Allow` [INFO] [stderr] --> src/namespace/user.rs:114:2 [INFO] [stderr] | [INFO] [stderr] 114 | Allow, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/context.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | / pub struct Context { [INFO] [stderr] 36 | | namespaces: Vec>, [INFO] [stderr] 37 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: lint level defined here [INFO] [stderr] --> src/lib.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 5 | #![warn(missing_debug_implementations)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `context::Context` [INFO] [stderr] --> src/context.rs:44:2 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn new() -> Context { [INFO] [stderr] | _____^ [INFO] [stderr] 45 | | Context { [INFO] [stderr] 46 | | namespaces: Vec::new() [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 35 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/context.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | fn map(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/context.rs:156:15 [INFO] [stderr] | [INFO] [stderr] 156 | fn addrspace(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/context.rs:231:1 [INFO] [stderr] | [INFO] [stderr] 231 | pub struct Child(pid_t); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/control_group.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct ControlGroup {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::control_group::ControlGroup` [INFO] [stderr] --> src/namespace/control_group.rs:21:2 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn new() -> ControlGroup { [INFO] [stderr] | _____^ [INFO] [stderr] 22 | | ControlGroup {} [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 17 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/ipc.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub struct Ipc {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::ipc::Ipc` [INFO] [stderr] --> src/namespace/ipc.rs:22:2 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new() -> Ipc { [INFO] [stderr] | _____^ [INFO] [stderr] 23 | | Ipc {} [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::mount::EmptyMount` [INFO] [stderr] --> src/namespace/mount.rs:50:2 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn new() -> EmptyMount { [INFO] [stderr] | _____^ [INFO] [stderr] 51 | | EmptyMount() [INFO] [stderr] 52 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 44 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/namespace/mount.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | pub fn as_bind(mut self) -> Mount { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/namespace/mount.rs:373:4 [INFO] [stderr] | [INFO] [stderr] 373 | match mount( [INFO] [stderr] | _____________^ [INFO] [stderr] 374 | | self.src(), [INFO] [stderr] 375 | | self.target(), [INFO] [stderr] 376 | | self.fstype(), [INFO] [stderr] ... | [INFO] [stderr] 381 | | _ => () [INFO] [stderr] 382 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 373 | if let -1 = mount( [INFO] [stderr] 374 | self.src(), [INFO] [stderr] 375 | self.target(), [INFO] [stderr] 376 | self.fstype(), [INFO] [stderr] 377 | self.flags, [INFO] [stderr] 378 | ptr::null() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/namespace/mount.rs:426:3 [INFO] [stderr] | [INFO] [stderr] 426 | match (&self.mounted, self.umount) { [INFO] [stderr] | _________^ [INFO] [stderr] 427 | | (Some(ref path), true) => unsafe { [INFO] [stderr] 428 | | umount(path.as_ptr()); [INFO] [stderr] 429 | | }, [INFO] [stderr] 430 | | _ => {} [INFO] [stderr] 431 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 426 | if let (Some(ref path), true) = (&self.mounted, self.umount) unsafe { [INFO] [stderr] 427 | umount(path.as_ptr()); [INFO] [stderr] 428 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/network.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | pub struct Network {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::network::Network` [INFO] [stderr] --> src/namespace/network.rs:26:2 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new() -> Network { [INFO] [stderr] | _____^ [INFO] [stderr] 27 | | Network {} [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 22 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/pid.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub struct Pid {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::pid::Pid` [INFO] [stderr] --> src/namespace/pid.rs:20:2 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn new() -> Pid { [INFO] [stderr] | _____^ [INFO] [stderr] 21 | | Pid {} [INFO] [stderr] 22 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 16 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/user.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | / pub struct User { [INFO] [stderr] 32 | | map_root_user: bool, [INFO] [stderr] 33 | | map_root_group: bool, [INFO] [stderr] 34 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/uts.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct Uts {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::uts::Uts` [INFO] [stderr] --> src/namespace/uts.rs:19:2 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn new() -> Uts { [INFO] [stderr] | _____^ [INFO] [stderr] 20 | | Uts {} [INFO] [stderr] 21 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: variant is never constructed: `Allow` [INFO] [stderr] --> src/namespace/user.rs:114:2 [INFO] [stderr] | [INFO] [stderr] 114 | Allow, [INFO] [stderr] | ^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/context.rs:35:1 [INFO] [stderr] | [INFO] [stderr] 35 | / pub struct Context { [INFO] [stderr] 36 | | namespaces: Vec>, [INFO] [stderr] 37 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] note: lint level defined here [INFO] [stderr] --> src/lib.rs:5:9 [INFO] [stderr] | [INFO] [stderr] 5 | #![warn(missing_debug_implementations)] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `context::Context` [INFO] [stderr] --> src/context.rs:44:2 [INFO] [stderr] | [INFO] [stderr] 44 | pub fn new() -> Context { [INFO] [stderr] | _____^ [INFO] [stderr] 45 | | Context { [INFO] [stderr] 46 | | namespaces: Vec::new() [INFO] [stderr] 47 | | } [INFO] [stderr] 48 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 35 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/context.rs:149:9 [INFO] [stderr] | [INFO] [stderr] 149 | fn map(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/context.rs:156:15 [INFO] [stderr] | [INFO] [stderr] 156 | fn addrspace(&self) -> c_int { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/context.rs:231:1 [INFO] [stderr] | [INFO] [stderr] 231 | pub struct Child(pid_t); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/control_group.rs:17:1 [INFO] [stderr] | [INFO] [stderr] 17 | pub struct ControlGroup {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::control_group::ControlGroup` [INFO] [stderr] --> src/namespace/control_group.rs:21:2 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn new() -> ControlGroup { [INFO] [stderr] | _____^ [INFO] [stderr] 22 | | ControlGroup {} [INFO] [stderr] 23 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 17 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/ipc.rs:18:1 [INFO] [stderr] | [INFO] [stderr] 18 | pub struct Ipc {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::ipc::Ipc` [INFO] [stderr] --> src/namespace/ipc.rs:22:2 [INFO] [stderr] | [INFO] [stderr] 22 | pub fn new() -> Ipc { [INFO] [stderr] | _____^ [INFO] [stderr] 23 | | Ipc {} [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 18 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::mount::EmptyMount` [INFO] [stderr] --> src/namespace/mount.rs:50:2 [INFO] [stderr] | [INFO] [stderr] 50 | pub fn new() -> EmptyMount { [INFO] [stderr] | _____^ [INFO] [stderr] 51 | | EmptyMount() [INFO] [stderr] 52 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 44 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: methods called `as_*` usually take self by reference or self by mutable reference; consider choosing a less ambiguous name [INFO] [stderr] --> src/namespace/mount.rs:243:17 [INFO] [stderr] | [INFO] [stderr] 243 | pub fn as_bind(mut self) -> Mount { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::wrong_self_convention)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#wrong_self_convention [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/namespace/mount.rs:373:4 [INFO] [stderr] | [INFO] [stderr] 373 | match mount( [INFO] [stderr] | _____________^ [INFO] [stderr] 374 | | self.src(), [INFO] [stderr] 375 | | self.target(), [INFO] [stderr] 376 | | self.fstype(), [INFO] [stderr] ... | [INFO] [stderr] 381 | | _ => () [INFO] [stderr] 382 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 373 | if let -1 = mount( [INFO] [stderr] 374 | self.src(), [INFO] [stderr] 375 | self.target(), [INFO] [stderr] 376 | self.fstype(), [INFO] [stderr] 377 | self.flags, [INFO] [stderr] 378 | ptr::null() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/namespace/mount.rs:426:3 [INFO] [stderr] | [INFO] [stderr] 426 | match (&self.mounted, self.umount) { [INFO] [stderr] | _________^ [INFO] [stderr] 427 | | (Some(ref path), true) => unsafe { [INFO] [stderr] 428 | | umount(path.as_ptr()); [INFO] [stderr] 429 | | }, [INFO] [stderr] 430 | | _ => {} [INFO] [stderr] 431 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 426 | if let (Some(ref path), true) = (&self.mounted, self.umount) unsafe { [INFO] [stderr] 427 | umount(path.as_ptr()); [INFO] [stderr] 428 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/network.rs:22:1 [INFO] [stderr] | [INFO] [stderr] 22 | pub struct Network {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::network::Network` [INFO] [stderr] --> src/namespace/network.rs:26:2 [INFO] [stderr] | [INFO] [stderr] 26 | pub fn new() -> Network { [INFO] [stderr] | _____^ [INFO] [stderr] 27 | | Network {} [INFO] [stderr] 28 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 22 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/pid.rs:16:1 [INFO] [stderr] | [INFO] [stderr] 16 | pub struct Pid {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::pid::Pid` [INFO] [stderr] --> src/namespace/pid.rs:20:2 [INFO] [stderr] | [INFO] [stderr] 20 | pub fn new() -> Pid { [INFO] [stderr] | _____^ [INFO] [stderr] 21 | | Pid {} [INFO] [stderr] 22 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 16 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/user.rs:31:1 [INFO] [stderr] | [INFO] [stderr] 31 | / pub struct User { [INFO] [stderr] 32 | | map_root_user: bool, [INFO] [stderr] 33 | | map_root_group: bool, [INFO] [stderr] 34 | | } [INFO] [stderr] | |_^ [INFO] [stderr] [INFO] [stderr] warning: type does not implement `fmt::Debug`; consider adding #[derive(Debug)] or a manual implementation [INFO] [stderr] --> src/namespace/uts.rs:15:1 [INFO] [stderr] | [INFO] [stderr] 15 | pub struct Uts {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `namespace::uts::Uts` [INFO] [stderr] --> src/namespace/uts.rs:19:2 [INFO] [stderr] | [INFO] [stderr] 19 | pub fn new() -> Uts { [INFO] [stderr] | _____^ [INFO] [stderr] 20 | | Uts {} [INFO] [stderr] 21 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 15 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: missing documentation for a trait method [INFO] [stderr] --> src/namespace/mod.rs:83:2 [INFO] [stderr] | [INFO] [stderr] 83 | fn box_clone(&self) -> Box; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: lint level defined here [INFO] [stderr] --> src/lib.rs:3:9 [INFO] [stderr] | [INFO] [stderr] 3 | #![warn(missing_docs)] [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | program: program, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `program` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:151:13 [INFO] [stderr] | [INFO] [stderr] 151 | program: program, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `program` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_field_names)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/main.rs:153:13 [INFO] [stderr] | [INFO] [stderr] 153 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:49:15 [INFO] [stderr] | [INFO] [stderr] 49 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:135:24 [INFO] [stderr] | [INFO] [stderr] 135 | const DEFAULT_CONFIG: &'static str = include_str!("isolate.toml"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:49:15 [INFO] [stderr] | [INFO] [stderr] 49 | const USAGE: &'static str = " [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/main.rs:135:24 [INFO] [stderr] | [INFO] [stderr] 135 | const DEFAULT_CONFIG: &'static str = include_str!("isolate.toml"); [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: field is never used: `config` [INFO] [stderr] --> src/main.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | config: Configuration, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: field is never used: `config` [INFO] [stderr] --> src/main.rs:144:5 [INFO] [stderr] | [INFO] [stderr] 144 | config: Configuration, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 39.39s [INFO] running `"docker" "inspect" "7895003e567d3887c1c846dd08164e7f262e212d97585e10eb6427879c953a1f"` [INFO] running `"docker" "rm" "-f" "7895003e567d3887c1c846dd08164e7f262e212d97585e10eb6427879c953a1f"` [INFO] [stdout] 7895003e567d3887c1c846dd08164e7f262e212d97585e10eb6427879c953a1f