[INFO] updating cached repository gmadrid/itools [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/gmadrid/itools [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/gmadrid/itools" "work/ex/clippy-test-run/sources/stable/gh/gmadrid/itools"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/gmadrid/itools'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/gmadrid/itools" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gmadrid/itools"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gmadrid/itools'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 578e16d9de30e2637f828e2a422ec58d602f7c8d [INFO] sha for GitHub repo gmadrid/itools: 578e16d9de30e2637f828e2a422ec58d602f7c8d [INFO] validating manifest of gmadrid/itools 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 gmadrid/itools 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 gmadrid/itools [INFO] finished frobbing gmadrid/itools [INFO] frobbed toml for gmadrid/itools written to work/ex/clippy-test-run/sources/stable/gh/gmadrid/itools/Cargo.toml [INFO] started frobbing gmadrid/itools [INFO] finished frobbing gmadrid/itools [INFO] frobbed toml for gmadrid/itools written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/gmadrid/itools/Cargo.toml [INFO] crate gmadrid/itools 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 gmadrid/itools against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/gmadrid/itools:/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] ccc98c3107a6420fcdf5b1aeb4c8a9fe1a805c7d029bee6065f54f062db0e58e [INFO] running `"docker" "start" "-a" "ccc98c3107a6420fcdf5b1aeb4c8a9fe1a805c7d029bee6065f54f062db0e58e"` [INFO] [stderr] Checking bk-tree v0.3.0 [INFO] [stderr] Checking serde_yaml v0.8.7 [INFO] [stderr] Compiling syn v0.15.15 [INFO] [stderr] Checking block-buffer v0.7.0 [INFO] [stderr] Checking rayon v1.0.2 [INFO] [stderr] Checking console v0.6.2 [INFO] [stderr] Checking sha2 v0.8.0 [INFO] [stderr] Checking indicatif v0.9.0 [INFO] [stderr] Checking jpeg-decoder v0.1.15 [INFO] [stderr] Compiling num-derive v0.2.3 [INFO] [stderr] Compiling serde_derive v1.0.80 [INFO] [stderr] Checking image v0.19.0 [INFO] [stderr] Checking img_hash v2.1.0 [INFO] [stderr] Checking itools v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/neardups/hasher.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | handle [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/neardups/hasher.rs:158:18 [INFO] [stderr] | [INFO] [stderr] 158 | let handle = spawn_with_name("ahasher", move || { [INFO] [stderr] | __________________^ [INFO] [stderr] 159 | | for (fi, image) in rx { [INFO] [stderr] 160 | | let ahash = ImageHash::hash(image.as_ref(), 8, HashType::Mean); [INFO] [stderr] 161 | | { [INFO] [stderr] ... | [INFO] [stderr] 166 | | } [INFO] [stderr] 167 | | }); [INFO] [stderr] | |______^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/neardups/hasher.rs:187:5 [INFO] [stderr] | [INFO] [stderr] 187 | handle [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/neardups/hasher.rs:176:18 [INFO] [stderr] | [INFO] [stderr] 176 | let handle = spawn_with_name("dhasher", move || { [INFO] [stderr] | __________________^ [INFO] [stderr] 177 | | for (fi, image) in rx { [INFO] [stderr] 178 | | let dhash = ImageHash::hash(image.as_ref(), 8, HashType::Gradient); [INFO] [stderr] 179 | | { [INFO] [stderr] ... | [INFO] [stderr] 184 | | } [INFO] [stderr] 185 | | }); [INFO] [stderr] | |______^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/neardups/hasher.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | handle [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/neardups/hasher.rs:194:18 [INFO] [stderr] | [INFO] [stderr] 194 | let handle = spawn_with_name("phasher", move || { [INFO] [stderr] | __________________^ [INFO] [stderr] 195 | | for (fi, image) in rx { [INFO] [stderr] 196 | | let phash = ImageHash::hash(image.as_ref(), 8, HashType::DCT); [INFO] [stderr] 197 | | { [INFO] [stderr] ... | [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | }); [INFO] [stderr] | |______^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/neardups/hasher.rs:169:5 [INFO] [stderr] | [INFO] [stderr] 169 | handle [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::let_and_return)] on by default [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/neardups/hasher.rs:158:18 [INFO] [stderr] | [INFO] [stderr] 158 | let handle = spawn_with_name("ahasher", move || { [INFO] [stderr] | __________________^ [INFO] [stderr] 159 | | for (fi, image) in rx { [INFO] [stderr] 160 | | let ahash = ImageHash::hash(image.as_ref(), 8, HashType::Mean); [INFO] [stderr] 161 | | { [INFO] [stderr] ... | [INFO] [stderr] 166 | | } [INFO] [stderr] 167 | | }); [INFO] [stderr] | |______^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/neardups/hasher.rs:187:5 [INFO] [stderr] | [INFO] [stderr] 187 | handle [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/neardups/hasher.rs:176:18 [INFO] [stderr] | [INFO] [stderr] 176 | let handle = spawn_with_name("dhasher", move || { [INFO] [stderr] | __________________^ [INFO] [stderr] 177 | | for (fi, image) in rx { [INFO] [stderr] 178 | | let dhash = ImageHash::hash(image.as_ref(), 8, HashType::Gradient); [INFO] [stderr] 179 | | { [INFO] [stderr] ... | [INFO] [stderr] 184 | | } [INFO] [stderr] 185 | | }); [INFO] [stderr] | |______^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] warning: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/neardups/hasher.rs:205:5 [INFO] [stderr] | [INFO] [stderr] 205 | handle [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/neardups/hasher.rs:194:18 [INFO] [stderr] | [INFO] [stderr] 194 | let handle = spawn_with_name("phasher", move || { [INFO] [stderr] | __________________^ [INFO] [stderr] 195 | | for (fi, image) in rx { [INFO] [stderr] 196 | | let phash = ImageHash::hash(image.as_ref(), 8, HashType::DCT); [INFO] [stderr] 197 | | { [INFO] [stderr] ... | [INFO] [stderr] 202 | | } [INFO] [stderr] 203 | | }); [INFO] [stderr] | |______^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return [INFO] [stderr] [INFO] [stderr] error[E0609]: no field `show_output` on type `neardups::config::Config` [INFO] [stderr] --> src/neardups/config.rs:224:33 [INFO] [stderr] | [INFO] [stderr] 224 | assert_eq!(true, c_show.show_output); [INFO] [stderr] | ^^^^^^^^^^^ unknown field [INFO] [stderr] | [INFO] [stderr] = note: available fields are: `cache_file`, `cache_only`, `files`, `output`, `show_progress`, `search` [INFO] [stderr] [INFO] [stderr] error[E0609]: no field `show_output` on type `neardups::config::Config` [INFO] [stderr] --> src/neardups/config.rs:227:35 [INFO] [stderr] | [INFO] [stderr] 227 | assert_eq!(false, c_quiet.show_output); [INFO] [stderr] | ^^^^^^^^^^^ unknown field [INFO] [stderr] | [INFO] [stderr] = note: available fields are: `cache_file`, `cache_only`, `files`, `output`, `show_progress`, `search` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `is_complete` found for type `neardups::fileinfo::FileInfo` in the current scope [INFO] [stderr] --> src/neardups/fileinfo.rs:63:30 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct FileInfo { [INFO] [stderr] | ------------------- method `is_complete` not found for this [INFO] [stderr] ... [INFO] [stderr] 63 | assert_eq!(false, fi.is_complete()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/neardups/fileinfo.rs:66:21 [INFO] [stderr] | [INFO] [stderr] 66 | a_hash: Some("sisisi".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ expected struct `std::string::String`, found enum `std::option::Option` [INFO] [stderr] | [INFO] [stderr] = note: expected type `std::string::String` [INFO] [stderr] found type `std::option::Option<_>` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `is_complete` found for type `neardups::fileinfo::FileInfo` in the current scope [INFO] [stderr] --> src/neardups/fileinfo.rs:69:30 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct FileInfo { [INFO] [stderr] | ------------------- method `is_complete` not found for this [INFO] [stderr] ... [INFO] [stderr] 69 | assert_eq!(false, fi.is_complete()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/neardups/hasher.rs:68:6 [INFO] [stderr] | [INFO] [stderr] 68 | ) -> ( [INFO] [stderr] | ______^ [INFO] [stderr] 69 | | Receiver<(FileInfoHandle, VecHandle)>, [INFO] [stderr] 70 | | Receiver<(FileInfoHandle, VecHandle)>, [INFO] [stderr] 71 | | JoinHandle<()>, [INFO] [stderr] 72 | | ) { [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/neardups/hasher.rs:121:6 [INFO] [stderr] | [INFO] [stderr] 121 | ) -> ( [INFO] [stderr] | ______^ [INFO] [stderr] 122 | | Receiver<(FileInfoHandle, ImageHandle)>, [INFO] [stderr] 123 | | Receiver<(FileInfoHandle, ImageHandle)>, [INFO] [stderr] 124 | | Receiver<(FileInfoHandle, ImageHandle)>, [INFO] [stderr] 125 | | JoinHandle<()>, [INFO] [stderr] 126 | | ) { [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `bar` [INFO] [stderr] --> src/neardups/progress.rs:7:9 [INFO] [stderr] | [INFO] [stderr] 7 | let bar = ProgressBar::new(num_items); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::blacklisted_name)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: use of a blacklisted/placeholder name `bar` [INFO] [stderr] --> src/neardups/progress.rs:28:25 [INFO] [stderr] | [INFO] [stderr] 28 | with_bar(self, |bar| bar.inc(1)); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#blacklisted_name [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/neardups/search.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | fn distance(&self) -> u64 { [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/neardups/search.rs:33:24 [INFO] [stderr] | [INFO] [stderr] 33 | MEAN(d) => d as u64, [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(d)` [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: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/neardups/search.rs:34:24 [INFO] [stderr] | [INFO] [stderr] 34 | GRAD(d) => d as u64, [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(d)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u8 to u64 may become silently lossy if types change [INFO] [stderr] --> src/neardups/search.rs:35:23 [INFO] [stderr] | [INFO] [stderr] 35 | DCT(d) => d as u64, [INFO] [stderr] | ^^^^^^^^ help: try: `u64::from(d)` [INFO] [stderr] | [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/neardups/search.rs:51:9 [INFO] [stderr] | [INFO] [stderr] 51 | &self, [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/neardups/search.rs:66:9 [INFO] [stderr] | [INFO] [stderr] 66 | &self, [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/neardups/search.rs:90:16 [INFO] [stderr] | [INFO] [stderr] 90 | files: &Vec, [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[PathBuf]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/neardups/search.rs:88:9 [INFO] [stderr] | [INFO] [stderr] 88 | &self, [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/neardups/search.rs:111:9 [INFO] [stderr] | [INFO] [stderr] 111 | &self, [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/neardups/search.rs:123:9 [INFO] [stderr] | [INFO] [stderr] 123 | &self, [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/neardups/search.rs:147:9 [INFO] [stderr] | [INFO] [stderr] 147 | &self, [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: redundant closure found [INFO] [stderr] --> src/neardups/search.rs:159:37 [INFO] [stderr] | [INFO] [stderr] 159 | .or_insert_with(|| Vec::default()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Vec::default` [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] --> src/neardups/walker.rs:13:18 [INFO] [stderr] | [INFO] [stderr] 13 | .map(|s| OsString::from(s)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `OsString::from` [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: redundant closure found [INFO] [stderr] --> src/neardups/walker.rs:21:14 [INFO] [stderr] | [INFO] [stderr] 21 | .map(|osstr| PathBuf::from(osstr)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `PathBuf::from` [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] error[E0308]: mismatched types [INFO] [stderr] --> src/neardups/fileinfo.rs:72:21 [INFO] [stderr] | [INFO] [stderr] 72 | d_hash: Some("foobar".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ expected struct `std::string::String`, found enum `std::option::Option` [INFO] [stderr] | [INFO] [stderr] = note: expected type `std::string::String` [INFO] [stderr] found type `std::option::Option<_>` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/neardups/fileinfo.rs:73:21 [INFO] [stderr] | [INFO] [stderr] 73 | p_hash: Some("blah".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ expected struct `std::string::String`, found enum `std::option::Option` [INFO] [stderr] | [INFO] [stderr] = note: expected type `std::string::String` [INFO] [stderr] found type `std::option::Option<_>` [INFO] [stderr] [INFO] [stderr] error[E0308]: mismatched types [INFO] [stderr] --> src/neardups/fileinfo.rs:74:24 [INFO] [stderr] | [INFO] [stderr] 74 | sha2_hash: Some("xxxxx".into()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ expected struct `std::string::String`, found enum `std::option::Option` [INFO] [stderr] | [INFO] [stderr] = note: expected type `std::string::String` [INFO] [stderr] found type `std::option::Option<_>` [INFO] [stderr] [INFO] [stderr] error[E0599]: no method named `is_complete` found for type `neardups::fileinfo::FileInfo` in the current scope [INFO] [stderr] --> src/neardups/fileinfo.rs:77:29 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct FileInfo { [INFO] [stderr] | ------------------- method `is_complete` not found for this [INFO] [stderr] ... [INFO] [stderr] 77 | assert_eq!(true, fi.is_complete()); [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error[E0599]: no function or associated item named `with_name` found for type `neardups::fileinfo::FileInfo` in the current scope [INFO] [stderr] --> src/neardups/fileinfo.rs:83:18 [INFO] [stderr] | [INFO] [stderr] 4 | pub struct FileInfo { [INFO] [stderr] | ------------------- function or associated item `with_name` not found for this [INFO] [stderr] ... [INFO] [stderr] 83 | let fi = FileInfo::with_name(name); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ function or associated item not found in `neardups::fileinfo::FileInfo` [INFO] [stderr] [INFO] [stderr] error: aborting due to 10 previous errors [INFO] [stderr] [INFO] [stderr] Some errors occurred: E0308, E0599, E0609. [INFO] [stderr] For more information about an error, try `rustc --explain E0308`. [INFO] [stderr] error: Could not compile `itools`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:27:33 [INFO] [stderr] | [INFO] [stderr] 27 | fn filter_files_in_cache(files: &Vec, cache: &PersistedCache) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[PathBuf]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/main.rs:27:33 [INFO] [stderr] | [INFO] [stderr] 27 | fn filter_files_in_cache(files: &Vec, cache: &PersistedCache) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^ help: change this to: `&[PathBuf]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: build failed [INFO] running `"docker" "inspect" "ccc98c3107a6420fcdf5b1aeb4c8a9fe1a805c7d029bee6065f54f062db0e58e"` [INFO] running `"docker" "rm" "-f" "ccc98c3107a6420fcdf5b1aeb4c8a9fe1a805c7d029bee6065f54f062db0e58e"` [INFO] [stdout] ccc98c3107a6420fcdf5b1aeb4c8a9fe1a805c7d029bee6065f54f062db0e58e