[INFO] crate robin 0.3.0 is already in cache [INFO] extracting crate robin 0.3.0 into work/ex/clippy-test-run/sources/stable/reg/robin/0.3.0 [INFO] extracting crate robin 0.3.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/robin/0.3.0 [INFO] validating manifest of robin-0.3.0 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 robin-0.3.0 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 robin-0.3.0 [INFO] removed 1 missing examples [INFO] finished frobbing robin-0.3.0 [INFO] frobbed toml for robin-0.3.0 written to work/ex/clippy-test-run/sources/stable/reg/robin/0.3.0/Cargo.toml [INFO] started frobbing robin-0.3.0 [INFO] removed 1 missing examples [INFO] finished frobbing robin-0.3.0 [INFO] frobbed toml for robin-0.3.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/robin/0.3.0/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [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 robin-0.3.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-0/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/robin/0.3.0:/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] 375676477b870ec5eadf8a601c4bd6257cb9c1301093eff30327e8bf183849bf [INFO] running `"docker" "start" "-a" "375676477b870ec5eadf8a601c4bd6257cb9c1301093eff30327e8bf183849bf"` [INFO] [stderr] warning: An explicit [[example]] section is specified in Cargo.toml which currently [INFO] [stderr] disables Cargo from automatically inferring other example targets. [INFO] [stderr] This inference behavior will change in the Rust 2018 edition and the following [INFO] [stderr] files will be included as a example target: [INFO] [stderr] [INFO] [stderr] * /opt/crater/workdir/examples/client_and_worker.rs [INFO] [stderr] [INFO] [stderr] This is likely to break cargo build or cargo test as these files may not be [INFO] [stderr] ready to be compiled as a example target today. You can future-proof yourself [INFO] [stderr] and disable this warning by adding `autoexamples = false` to your [package] [INFO] [stderr] section. You may also move the files to a location where Cargo would not [INFO] [stderr] automatically infer them to be a target, such as in subfolders. [INFO] [stderr] [INFO] [stderr] For more information on this warning you can consult [INFO] [stderr] https://github.com/rust-lang/cargo/issues/5330 [INFO] [stderr] Compiling robin-derives v0.3.0 [INFO] [stderr] Compiling typesafe-derive-builder v0.1.0 [INFO] [stderr] Checking redis v0.8.0 [INFO] [stderr] Checking robin v0.3.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/connection/mod.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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/connection/mod.rs:130:9 [INFO] [stderr] | [INFO] [stderr] 130 | config: config, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `config` [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: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/connection/queue_adapters/redis_queue.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let _: () = self.redis.rpush(&self.key(iden), data)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/connection/queue_adapters/redis_queue.rs:38:20 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn dequeue<'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connection/queue_adapters/redis_queue.rs:40:18 [INFO] [stderr] | [INFO] [stderr] 40 | timeout: &DequeueTimeout, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider passing by value instead: `DequeueTimeout` [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 let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/connection/queue_adapters/redis_queue.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | let _: () = self.redis.del(&self.key(iden))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connection/queue_adapters/mod.rs:21:22 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn increment(&self) -> RetryCount { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connection/queue_adapters/mod.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn limit_reached(&self, config: &Config) -> bool { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connection/queue_adapters/mod.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 108 | pub fn redis_queue_name(&self) -> String { [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/connection/mod.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | / pub fn dequeue_from<'a>( [INFO] [stderr] 65 | | &'a self, [INFO] [stderr] 66 | | iden: QueueIdentifier, [INFO] [stderr] 67 | | timeout: DequeueTimeout, [INFO] [stderr] ... | [INFO] [stderr] 78 | | Ok((job, args, enq_job.retry_count().clone())) [INFO] [stderr] 79 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/connection/mod.rs:78:24 [INFO] [stderr] | [INFO] [stderr] 78 | Ok((job, args, enq_job.retry_count().clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*enq_job.retry_count()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match self { [INFO] [stderr] 36 | | &Error::UnknownJob(ref name) => name, [INFO] [stderr] 37 | | &Error::JobFailed(ref err) => err.description(), [INFO] [stderr] 38 | | &Error::SerdeJsonError(ref err) => err.description(), [INFO] [stderr] 39 | | &Error::RedisError(ref err) => err.description(), [INFO] [stderr] 40 | | &Error::UnknownRedisError(ref msg) => msg, [INFO] [stderr] 41 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 35 | match *self { [INFO] [stderr] 36 | Error::UnknownJob(ref name) => name, [INFO] [stderr] 37 | Error::JobFailed(ref err) => err.description(), [INFO] [stderr] 38 | Error::SerdeJsonError(ref err) => err.description(), [INFO] [stderr] 39 | Error::RedisError(ref err) => err.description(), [INFO] [stderr] 40 | Error::UnknownRedisError(ref msg) => msg, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: this let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/connection/queue_adapters/redis_queue.rs:32:9 [INFO] [stderr] | [INFO] [stderr] 32 | let _: () = self.redis.rpush(&self.key(iden), data)?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_unit_value)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/connection/queue_adapters/redis_queue.rs:38:20 [INFO] [stderr] | [INFO] [stderr] 38 | pub fn dequeue<'a>( [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connection/queue_adapters/redis_queue.rs:40:18 [INFO] [stderr] | [INFO] [stderr] 40 | timeout: &DequeueTimeout, [INFO] [stderr] | ^^^^^^^^^^^^^^^ help: consider passing by value instead: `DequeueTimeout` [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 let-binding has unit value. Consider omitting `let _ =` [INFO] [stderr] --> src/connection/queue_adapters/redis_queue.rs:63:9 [INFO] [stderr] | [INFO] [stderr] 63 | let _: () = self.redis.del(&self.key(iden))?; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_unit_value [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ticker.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | self.ticks() as f64 / duration_to_f64(self.elapsed()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.ticks())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connection/queue_adapters/mod.rs:21:22 [INFO] [stderr] | [INFO] [stderr] 21 | pub fn increment(&self) -> RetryCount { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connection/queue_adapters/mod.rs:29:26 [INFO] [stderr] | [INFO] [stderr] 29 | pub fn limit_reached(&self, config: &Config) -> bool { [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/connection/queue_adapters/mod.rs:108:29 [INFO] [stderr] | [INFO] [stderr] 108 | pub fn redis_queue_name(&self) -> String { [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: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/connection/mod.rs:64:5 [INFO] [stderr] | [INFO] [stderr] 64 | / pub fn dequeue_from<'a>( [INFO] [stderr] 65 | | &'a self, [INFO] [stderr] 66 | | iden: QueueIdentifier, [INFO] [stderr] 67 | | timeout: DequeueTimeout, [INFO] [stderr] ... | [INFO] [stderr] 78 | | Ok((job, args, enq_job.retry_count().clone())) [INFO] [stderr] 79 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/connection/mod.rs:78:24 [INFO] [stderr] | [INFO] [stderr] 78 | Ok((job, args, enq_job.retry_count().clone())) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try dereferencing it: `*enq_job.retry_count()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/error.rs:35:9 [INFO] [stderr] | [INFO] [stderr] 35 | / match self { [INFO] [stderr] 36 | | &Error::UnknownJob(ref name) => name, [INFO] [stderr] 37 | | &Error::JobFailed(ref err) => err.description(), [INFO] [stderr] 38 | | &Error::SerdeJsonError(ref err) => err.description(), [INFO] [stderr] 39 | | &Error::RedisError(ref err) => err.description(), [INFO] [stderr] 40 | | &Error::UnknownRedisError(ref msg) => msg, [INFO] [stderr] 41 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 35 | match *self { [INFO] [stderr] 36 | Error::UnknownJob(ref name) => name, [INFO] [stderr] 37 | Error::JobFailed(ref err) => err.description(), [INFO] [stderr] 38 | Error::SerdeJsonError(ref err) => err.description(), [INFO] [stderr] 39 | Error::RedisError(ref err) => err.description(), [INFO] [stderr] 40 | Error::UnknownRedisError(ref msg) => msg, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/ticker.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | self.ticks() as f64 / duration_to_f64(self.elapsed()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(self.ticks())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> tests/test_helper/mod.rs:176:13 [INFO] [stderr] | [INFO] [stderr] 176 | redis_namespace: redis_namespace, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `redis_namespace` [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] --> tests/performing_jobs_test.rs:95:37 [INFO] [stderr] | [INFO] [stderr] 95 | let args = PassSecondTimeArgs { file: file }; [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `file` [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: cannot find type `JobName` in this scope [INFO] [stderr] --> tests/test_helper/mod.rs:59:10 [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Job)] [INFO] [stderr] | ^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = note: #[warn(proc_macro_derive_resolution_fallback)] on by default [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Job` in this scope [INFO] [stderr] --> tests/test_helper/mod.rs:59:10 [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Job)] [INFO] [stderr] | ^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Jobs` in this scope [INFO] [stderr] --> tests/test_helper/mod.rs:59:10 [INFO] [stderr] | [INFO] [stderr] 59 | #[derive(Job)] [INFO] [stderr] | ^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `JobName` in this scope [INFO] [stderr] --> <::robin::macros::jobs macros>:2:14 [INFO] [stderr] | [INFO] [stderr] 2 | # [ derive ( Job ) ] enum __RobinJobs { $ ( $ id , ) * } $ ( [INFO] [stderr] | ^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `Job` in this scope [INFO] [stderr] --> <::robin::macros::jobs macros>:2:14 [INFO] [stderr] | [INFO] [stderr] 2 | # [ derive ( Job ) ] enum __RobinJobs { $ ( $ id , ) * } $ ( [INFO] [stderr] | ^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: cannot find type `__RobinJobs` in this scope [INFO] [stderr] --> <::robin::macros::jobs macros>:2:14 [INFO] [stderr] | [INFO] [stderr] 2 | # [ derive ( Job ) ] enum __RobinJobs { $ ( $ id , ) * } $ ( [INFO] [stderr] | ^^^ names from parent modules are not accessible without an explicit import [INFO] [stderr] | [INFO] [stderr] = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! [INFO] [stderr] = note: for more information, see issue #50504 [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> tests/test_helper/mod.rs:30:9 [INFO] [stderr] | [INFO] [stderr] 30 | args.file().map(|file| delete_tmp_test_file(file)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(file) = args.file() { delete_tmp_test_file(file) }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::option_map_unit_fn)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> tests/test_helper/mod.rs:30:25 [INFO] [stderr] | [INFO] [stderr] 30 | args.file().map(|file| delete_tmp_test_file(file)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `delete_tmp_test_file` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> tests/test_helper/mod.rs:82:36 [INFO] [stderr] | [INFO] [stderr] 82 | let contents = args.file().map(|file| read_tmp_test_file(file)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `read_tmp_test_file` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> tests/test_helper/mod.rs:87:17 [INFO] [stderr] | [INFO] [stderr] 87 | args.file().map(|file| write_tmp_test_file(file, "OK")); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- [INFO] [stderr] | | [INFO] [stderr] | help: try this: `if let Some(file) = args.file() { write_tmp_test_file(file, "OK") }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: called `map(f)` on an Option value where `f` is a unit closure [INFO] [stderr] --> tests/test_helper/mod.rs:96:13 [INFO] [stderr] | [INFO] [stderr] 96 | args.file() [INFO] [stderr] | _____________^ [INFO] [stderr] | |_____________| [INFO] [stderr] | || [INFO] [stderr] 97 | || .map(|file| write_tmp_test_file(file, "been_here")); [INFO] [stderr] | ||___________________________________________________________________^- help: try this: `if let Some(file) = args.file() { write_tmp_test_file(file, "been_here") }` [INFO] [stderr] | |____________________________________________________________________| [INFO] [stderr] | [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#option_map_unit_fn [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> tests/test_helper/mod.rs:144:33 [INFO] [stderr] | [INFO] [stderr] 144 | let f = File::create(&file).expect(format!("Couldn't create file {}", &file).as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Couldn't create file {}", &file))` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::expect_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] warning: use of `expect` followed by a function call [INFO] [stderr] --> tests/test_helper/mod.rs:147:10 [INFO] [stderr] | [INFO] [stderr] 147 | .expect(format!("Couldn't write to {}", &file,).as_ref()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|_| panic!("Couldn't write to {}", &file))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#expect_fun_call [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 12.87s [INFO] running `"docker" "inspect" "375676477b870ec5eadf8a601c4bd6257cb9c1301093eff30327e8bf183849bf"` [INFO] running `"docker" "rm" "-f" "375676477b870ec5eadf8a601c4bd6257cb9c1301093eff30327e8bf183849bf"` [INFO] [stdout] 375676477b870ec5eadf8a601c4bd6257cb9c1301093eff30327e8bf183849bf