[INFO] crate rustfst 0.1.7 is already in cache [INFO] extracting crate rustfst 0.1.7 into work/ex/clippy-test-run/sources/stable/reg/rustfst/0.1.7 [INFO] extracting crate rustfst 0.1.7 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rustfst/0.1.7 [INFO] validating manifest of rustfst-0.1.7 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 rustfst-0.1.7 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 rustfst-0.1.7 [INFO] finished frobbing rustfst-0.1.7 [INFO] frobbed toml for rustfst-0.1.7 written to work/ex/clippy-test-run/sources/stable/reg/rustfst/0.1.7/Cargo.toml [INFO] started frobbing rustfst-0.1.7 [INFO] finished frobbing rustfst-0.1.7 [INFO] frobbed toml for rustfst-0.1.7 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/rustfst/0.1.7/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 rustfst-0.1.7 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/reg/rustfst/0.1.7:/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] 235f61ac302f76a539912d1a53613c91b9d0b11b9ef7420872be2d31916788d3 [INFO] running `"docker" "start" "-a" "235f61ac302f76a539912d1a53613c91b9d0b11b9ef7420872be2d31916788d3"` [INFO] [stderr] Checking counter v0.4.3 [INFO] [stderr] Checking rustfst v0.1.7 (/opt/crater/workdir) [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/algorithms/single_source_shortest_distance.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | return Ok(vec![::W::zero(); fst.num_states()]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(vec![::W::zero(); fst.num_states()])` [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: module has the same name as its containing module [INFO] [stderr] --> src/fst_impls/vector_fst/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | mod vector_fst; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/integer_weight.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | return Self::new(i32::max_value()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(i32::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | return rhs.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rhs.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | return self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | return Self::new(f2 - ln_pos_exp(f1 - f2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(f2 - ln_pos_exp(f1 - f2))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | return Self::new(f1 - ln_pos_exp(f2 - f1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(f1 - ln_pos_exp(f2 - f1))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | return self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | return rhs.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rhs.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | return Self::new(f1 + f2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(f1 + f2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/tropical_weight.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | return self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/tropical_weight.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | return rhs.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rhs.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/tropical_weight.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | return Self::new(f1 + f2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(f1 + f2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/algorithms/epsilon_removal.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | !keep_only_epsilon && !(old_arc.ilabel == EPS_LABEL && old_arc.olabel == EPS_LABEL); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(old_arc.ilabel == EPS_LABEL && old_arc.olabel == EPS_LABEL || keep_only_epsilon)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/path.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | / impl Hash for Path { [INFO] [stderr] 56 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 57 | | self.ilabels.hash(state); [INFO] [stderr] 58 | | self.olabels.hash(state); [INFO] [stderr] 59 | | self.weight.hash(state); [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/path.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(PartialEq, Debug, Clone, PartialOrd)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/fst_traits/fst.rs:57:28 [INFO] [stderr] | [INFO] [stderr] 57 | fn final_weight(&self, &StateId) -> Option<::W>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/fst.rs:98:34 [INFO] [stderr] | [INFO] [stderr] 98 | fn is_final(&self, state_id: &StateId) -> bool { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/fst.rs:144:28 [INFO] [stderr] | [INFO] [stderr] 144 | fn arcs_iter(&'a self, &StateId) -> Result; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:35:39 [INFO] [stderr] | [INFO] [stderr] 35 | fn set_start(&mut self, state_id: &StateId) -> Result<()>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:61:39 [INFO] [stderr] | [INFO] [stderr] 61 | fn set_final(&mut self, state_id: &StateId, final_weight: ::W) -> Result<()>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:108:39 [INFO] [stderr] | [INFO] [stderr] 108 | fn del_state(&mut self, state_id: &StateId) -> Result<()>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:165:35 [INFO] [stderr] | [INFO] [stderr] 165 | fn add_arc(&mut self, source: &StateId, arc: Arc<::W>) -> Result<()>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:207:36 [INFO] [stderr] | [INFO] [stderr] 207 | fn arcs_iter_mut(&'a mut self, &StateId) -> Result; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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: unused `std::result::Result` that must be used [INFO] [stderr] --> src/fst_impls/vector_fst/vector_fst.rs:198:1 [INFO] [stderr] | [INFO] [stderr] 198 | display_fst!(W, VectorFst); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/boolean_weight.rs:42:1 [INFO] [stderr] | [INFO] [stderr] 42 | display_semiring!(BooleanWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/integer_weight.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | display_semiring!(IntegerWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/log_weight.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | display_semiring!(LogWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/probability_weight.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | display_semiring!(ProbabilityWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/tropical_weight.rs:57:1 [INFO] [stderr] | [INFO] [stderr] 57 | display_semiring!(TropicalWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `default` [INFO] [stderr] --> src/utils/fst_to_labels.rs:32:16 [INFO] [stderr] | [INFO] [stderr] 32 | let path = it_path.next().unwrap_or(Path::default()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `it_path.next().unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/algorithms/single_source_shortest_distance.rs:114:5 [INFO] [stderr] | [INFO] [stderr] 114 | return Ok(vec![::W::zero(); fst.num_states()]); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Ok(vec![::W::zero(); fst.num_states()])` [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] error: Could not compile `rustfst`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: module has the same name as its containing module [INFO] [stderr] --> src/fst_impls/vector_fst/mod.rs:2:1 [INFO] [stderr] | [INFO] [stderr] 2 | mod vector_fst; [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::module_inception)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#module_inception [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/integer_weight.rs:55:9 [INFO] [stderr] | [INFO] [stderr] 55 | return Self::new(i32::max_value()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(i32::max_value())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:27:13 [INFO] [stderr] | [INFO] [stderr] 27 | return rhs.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rhs.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | return self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | return Self::new(f2 - ln_pos_exp(f1 - f2)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(f2 - ln_pos_exp(f1 - f2))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | return Self::new(f1 - ln_pos_exp(f2 - f1)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(f1 - ln_pos_exp(f2 - f1))` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | return self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | return rhs.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rhs.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/log_weight.rs:45:13 [INFO] [stderr] | [INFO] [stderr] 45 | return Self::new(f1 + f2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(f1 + f2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/tropical_weight.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | return self.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/tropical_weight.rs:33:13 [INFO] [stderr] | [INFO] [stderr] 33 | return rhs.clone(); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `rhs.clone()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/semirings/tropical_weight.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | return Self::new(f1 + f2); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `Self::new(f1 + f2)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] [INFO] [stderr] warning: this boolean expression can be simplified [INFO] [stderr] --> src/algorithms/epsilon_removal.rs:32:17 [INFO] [stderr] | [INFO] [stderr] 32 | !keep_only_epsilon && !(old_arc.ilabel == EPS_LABEL && old_arc.olabel == EPS_LABEL); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `!(old_arc.ilabel == EPS_LABEL && old_arc.olabel == EPS_LABEL || keep_only_epsilon)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::nonminimal_bool)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool [INFO] [stderr] [INFO] [stderr] error: you are implementing `Hash` explicitly but have derived `PartialEq` [INFO] [stderr] --> src/path.rs:55:1 [INFO] [stderr] | [INFO] [stderr] 55 | / impl Hash for Path { [INFO] [stderr] 56 | | fn hash(&self, state: &mut H) { [INFO] [stderr] 57 | | self.ilabels.hash(state); [INFO] [stderr] 58 | | self.olabels.hash(state); [INFO] [stderr] 59 | | self.weight.hash(state); [INFO] [stderr] 60 | | } [INFO] [stderr] 61 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::derive_hash_xor_eq)] on by default [INFO] [stderr] note: `PartialEq` implemented here [INFO] [stderr] --> src/path.rs:6:10 [INFO] [stderr] | [INFO] [stderr] 6 | #[derive(PartialEq, Debug, Clone, PartialOrd)] [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#derive_hash_xor_eq [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/fst_traits/fst.rs:57:28 [INFO] [stderr] | [INFO] [stderr] 57 | fn final_weight(&self, &StateId) -> Option<::W>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/fst.rs:98:34 [INFO] [stderr] | [INFO] [stderr] 98 | fn is_final(&self, state_id: &StateId) -> bool { [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/fst.rs:144:28 [INFO] [stderr] | [INFO] [stderr] 144 | fn arcs_iter(&'a self, &StateId) -> Result; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:35:39 [INFO] [stderr] | [INFO] [stderr] 35 | fn set_start(&mut self, state_id: &StateId) -> Result<()>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:61:39 [INFO] [stderr] | [INFO] [stderr] 61 | fn set_final(&mut self, state_id: &StateId, final_weight: ::W) -> Result<()>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:108:39 [INFO] [stderr] | [INFO] [stderr] 108 | fn del_state(&mut self, state_id: &StateId) -> Result<()>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:165:35 [INFO] [stderr] | [INFO] [stderr] 165 | fn add_arc(&mut self, source: &StateId, arc: Arc<::W>) -> Result<()>; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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/fst_traits/mutable_fst.rs:207:36 [INFO] [stderr] | [INFO] [stderr] 207 | fn arcs_iter_mut(&'a mut self, &StateId) -> Result; [INFO] [stderr] | ^^^^^^^^ help: consider passing by value instead: `StateId` [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: the operation is ineffective. Consider reducing it to `41` [INFO] [stderr] --> src/fst_traits/paths_iterator.rs:203:32 [INFO] [stderr] | [INFO] [stderr] 203 | IntegerWeight::new(1 * 41), [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_op)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_op [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/fst_impls/vector_fst/vector_fst.rs:198:1 [INFO] [stderr] | [INFO] [stderr] 198 | display_fst!(W, VectorFst); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_must_use)] on by default [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/boolean_weight.rs:42:1 [INFO] [stderr] | [INFO] [stderr] 42 | display_semiring!(BooleanWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/integer_weight.rs:46:1 [INFO] [stderr] | [INFO] [stderr] 46 | display_semiring!(IntegerWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/log_weight.rs:67:1 [INFO] [stderr] | [INFO] [stderr] 67 | display_semiring!(LogWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/probability_weight.rs:44:1 [INFO] [stderr] | [INFO] [stderr] 44 | display_semiring!(ProbabilityWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: unused `std::result::Result` that must be used [INFO] [stderr] --> src/semirings/tropical_weight.rs:57:1 [INFO] [stderr] | [INFO] [stderr] 57 | display_semiring!(TropicalWeight); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stderr] = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a call to `default` [INFO] [stderr] --> src/utils/fst_to_labels.rs:32:16 [INFO] [stderr] | [INFO] [stderr] 32 | let path = it_path.next().unwrap_or(Path::default()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `it_path.next().unwrap_or_default()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `rustfst`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "235f61ac302f76a539912d1a53613c91b9d0b11b9ef7420872be2d31916788d3"` [INFO] running `"docker" "rm" "-f" "235f61ac302f76a539912d1a53613c91b9d0b11b9ef7420872be2d31916788d3"` [INFO] [stdout] 235f61ac302f76a539912d1a53613c91b9d0b11b9ef7420872be2d31916788d3