[INFO] updating cached repository dzharikhin/ml_example [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/dzharikhin/ml_example [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/dzharikhin/ml_example" "work/ex/clippy-test-run/sources/stable/gh/dzharikhin/ml_example"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/dzharikhin/ml_example'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/dzharikhin/ml_example" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dzharikhin/ml_example"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dzharikhin/ml_example'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 85bfec1529dce86c9792da08cd1216ae7b68168a [INFO] sha for GitHub repo dzharikhin/ml_example: 85bfec1529dce86c9792da08cd1216ae7b68168a [INFO] validating manifest of dzharikhin/ml_example 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 dzharikhin/ml_example 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 dzharikhin/ml_example [INFO] finished frobbing dzharikhin/ml_example [INFO] frobbed toml for dzharikhin/ml_example written to work/ex/clippy-test-run/sources/stable/gh/dzharikhin/ml_example/Cargo.toml [INFO] started frobbing dzharikhin/ml_example [INFO] finished frobbing dzharikhin/ml_example [INFO] frobbed toml for dzharikhin/ml_example written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dzharikhin/ml_example/Cargo.toml [INFO] crate dzharikhin/ml_example 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 dzharikhin/ml_example against stable+rustflags=-Dclippy::into_iter_on_array for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-5/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/dzharikhin/ml_example:/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 -Dclippy::into_iter_on_array" "-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] e9a5ce64f001bdd035d0ad49d8acf5db31385fc0b2abbce5de9bfd4e1fb2ed9c [INFO] running `"docker" "start" "-a" "e9a5ce64f001bdd035d0ad49d8acf5db31385fc0b2abbce5de9bfd4e1fb2ed9c"` [INFO] [stderr] Checking ml-example v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/tree/main.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | route_map: route_map [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `route_map` [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/neural/main.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | synapses: synapses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `synapses` [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/neural/main.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | rnd: rnd [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rnd` [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/tree/main.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | route_map: route_map [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `route_map` [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/neural/main.rs:77:13 [INFO] [stderr] | [INFO] [stderr] 77 | synapses: synapses, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `synapses` [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/neural/main.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | rnd: rnd [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rnd` [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: unneeded return statement [INFO] [stderr] --> src/tree/main.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | return self.route_map.get(&target_feature_value).unwrap().get_class(obj); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.route_map.get(&target_feature_value).unwrap().get_class(obj)` [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: unneeded return statement [INFO] [stderr] --> src/tree/main.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | return self.class; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.class` [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/tree/main.rs:48:62 [INFO] [stderr] | [INFO] [stderr] 48 | providers.insert("f1".to_string(), Box::new(|x: &Object| return x.f1)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `x.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/tree/main.rs:49:62 [INFO] [stderr] | [INFO] [stderr] 49 | providers.insert("f2".to_string(), Box::new(|x: &Object| return x.f2)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `x.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/tree/main.rs:50:62 [INFO] [stderr] | [INFO] [stderr] 50 | providers.insert("f3".to_string(), Box::new(|x: &Object| return x.f3)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `x.f3` [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/tree/main.rs:109:13 [INFO] [stderr] | [INFO] [stderr] 109 | / return Box::new(CalcNode { [INFO] [stderr] 110 | | providers: &providers, [INFO] [stderr] 111 | | feature_name: max_feature_key, [INFO] [stderr] 112 | | route_map: route_map [INFO] [stderr] 113 | | }); [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 109 | Box::new(CalcNode { [INFO] [stderr] 110 | providers: &providers, [INFO] [stderr] 111 | feature_name: max_feature_key, [INFO] [stderr] 112 | route_map: route_map [INFO] [stderr] 113 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree/main.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | / return distinct_target_values.into_iter() [INFO] [stderr] 124 | | .map(|target_feature_value| -> f64 { [INFO] [stderr] 125 | | let data_with_target_feature: Vec<_> = data.iter().filter(|obj| provider(&obj.o) == target_feature_value).collect(); [INFO] [stderr] 126 | | let data_with_target_feature_size = data_with_target_feature.len(); [INFO] [stderr] ... | [INFO] [stderr] 137 | | sum + next [INFO] [stderr] 138 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 123 | distinct_target_values.into_iter() [INFO] [stderr] 124 | .map(|target_feature_value| -> f64 { [INFO] [stderr] 125 | let data_with_target_feature: Vec<_> = data.iter().filter(|obj| provider(&obj.o) == target_feature_value).collect(); [INFO] [stderr] 126 | let data_with_target_feature_size = data_with_target_feature.len(); [INFO] [stderr] 127 | println!("Target value: {}. data size with this value: {}, all data size: {}", target_feature_value, data_with_target_feature_size, data.len()); [INFO] [stderr] 128 | return classes.iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree/main.rs:128:13 [INFO] [stderr] | [INFO] [stderr] 128 | / return classes.iter() [INFO] [stderr] 129 | | .map(|cls| { [INFO] [stderr] 130 | | let data_of_class_size = data_with_target_feature.iter().filter(|obj| &obj.class == cls).count(); [INFO] [stderr] 131 | | println!("Filtered data of class {} size: {}", cls, data_of_class_size); [INFO] [stderr] 132 | | data_of_class_size as f64 / data_with_target_feature_size as f64 [INFO] [stderr] 133 | | }) [INFO] [stderr] 134 | | .fold(data_with_target_feature_size as f64 / data.len() as f64, |mult, i| mult * i); [INFO] [stderr] | |____________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 128 | classes.iter() [INFO] [stderr] 129 | .map(|cls| { [INFO] [stderr] 130 | let data_of_class_size = data_with_target_feature.iter().filter(|obj| &obj.class == cls).count(); [INFO] [stderr] 131 | println!("Filtered data of class {} size: {}", cls, data_of_class_size); [INFO] [stderr] 132 | data_of_class_size as f64 / data_with_target_feature_size as f64 [INFO] [stderr] 133 | }) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree/main.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | return self.route_map.get(&target_feature_value).unwrap().get_class(obj); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.route_map.get(&target_feature_value).unwrap().get_class(obj)` [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: unneeded return statement [INFO] [stderr] --> src/tree/main.rs:41:9 [INFO] [stderr] | [INFO] [stderr] 41 | return self.class; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `self.class` [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/tree/main.rs:48:62 [INFO] [stderr] | [INFO] [stderr] 48 | providers.insert("f1".to_string(), Box::new(|x: &Object| return x.f1)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `x.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/tree/main.rs:49:62 [INFO] [stderr] | [INFO] [stderr] 49 | providers.insert("f2".to_string(), Box::new(|x: &Object| return x.f2)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `x.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/tree/main.rs:50:62 [INFO] [stderr] | [INFO] [stderr] 50 | providers.insert("f3".to_string(), Box::new(|x: &Object| return x.f3)); [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `x.f3` [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/tree/main.rs:109:13 [INFO] [stderr] | [INFO] [stderr] 109 | / return Box::new(CalcNode { [INFO] [stderr] 110 | | providers: &providers, [INFO] [stderr] 111 | | feature_name: max_feature_key, [INFO] [stderr] 112 | | route_map: route_map [INFO] [stderr] 113 | | }); [INFO] [stderr] | |_______________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 109 | Box::new(CalcNode { [INFO] [stderr] 110 | providers: &providers, [INFO] [stderr] 111 | feature_name: max_feature_key, [INFO] [stderr] 112 | route_map: route_map [INFO] [stderr] 113 | }) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree/main.rs:123:5 [INFO] [stderr] | [INFO] [stderr] 123 | / return distinct_target_values.into_iter() [INFO] [stderr] 124 | | .map(|target_feature_value| -> f64 { [INFO] [stderr] 125 | | let data_with_target_feature: Vec<_> = data.iter().filter(|obj| provider(&obj.o) == target_feature_value).collect(); [INFO] [stderr] 126 | | let data_with_target_feature_size = data_with_target_feature.len(); [INFO] [stderr] ... | [INFO] [stderr] 137 | | sum + next [INFO] [stderr] 138 | | }); [INFO] [stderr] | |___________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 123 | distinct_target_values.into_iter() [INFO] [stderr] 124 | .map(|target_feature_value| -> f64 { [INFO] [stderr] 125 | let data_with_target_feature: Vec<_> = data.iter().filter(|obj| provider(&obj.o) == target_feature_value).collect(); [INFO] [stderr] 126 | let data_with_target_feature_size = data_with_target_feature.len(); [INFO] [stderr] 127 | println!("Target value: {}. data size with this value: {}, all data size: {}", target_feature_value, data_with_target_feature_size, data.len()); [INFO] [stderr] 128 | return classes.iter() [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/tree/main.rs:128:13 [INFO] [stderr] | [INFO] [stderr] 128 | / return classes.iter() [INFO] [stderr] 129 | | .map(|cls| { [INFO] [stderr] 130 | | let data_of_class_size = data_with_target_feature.iter().filter(|obj| &obj.class == cls).count(); [INFO] [stderr] 131 | | println!("Filtered data of class {} size: {}", cls, data_of_class_size); [INFO] [stderr] 132 | | data_of_class_size as f64 / data_with_target_feature_size as f64 [INFO] [stderr] 133 | | }) [INFO] [stderr] 134 | | .fold(data_with_target_feature_size as f64 / data.len() as f64, |mult, i| mult * i); [INFO] [stderr] | |____________________________________________________________________________________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return [INFO] [stderr] help: remove `return` as shown [INFO] [stderr] | [INFO] [stderr] 128 | classes.iter() [INFO] [stderr] 129 | .map(|cls| { [INFO] [stderr] 130 | let data_of_class_size = data_with_target_feature.iter().filter(|obj| &obj.class == cls).count(); [INFO] [stderr] 131 | println!("Filtered data of class {} size: {}", cls, data_of_class_size); [INFO] [stderr] 132 | data_of_class_size as f64 / data_with_target_feature_size as f64 [INFO] [stderr] 133 | }) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: function is never used: `gate` [INFO] [stderr] --> src/neural/main.rs:127:1 [INFO] [stderr] | [INFO] [stderr] 127 | fn gate(val: f64) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sigmoid_derivative` [INFO] [stderr] --> src/neural/main.rs:135:1 [INFO] [stderr] | [INFO] [stderr] 135 | fn sigmoid_derivative(x: f64) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/neural/main.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | (((val >= 0.0) as i8) as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(((val >= 0.0) as i8))` [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: function is never used: `gate` [INFO] [stderr] --> src/neural/main.rs:127:1 [INFO] [stderr] | [INFO] [stderr] 127 | fn gate(val: f64) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(dead_code)] on by default [INFO] [stderr] [INFO] [stderr] warning: function is never used: `sigmoid_derivative` [INFO] [stderr] --> src/neural/main.rs:135:1 [INFO] [stderr] | [INFO] [stderr] 135 | fn sigmoid_derivative(x: f64) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tree/main.rs:34:16 [INFO] [stderr] | [INFO] [stderr] 34 | return self.route_map.get(&target_feature_value).unwrap().get_class(obj); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.route_map[&target_feature_value]` [INFO] [stderr] warning: casting i8 to f64 may become silently lossy if types change [INFO] [stderr] --> src/neural/main.rs:128:5 [INFO] [stderr] | [INFO] [stderr] 128 | (((val >= 0.0) as i8) as f64) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `f64::from(((val >= 0.0) as i8))` [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] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/tree/main.rs:106:63 [INFO] [stderr] | [INFO] [stderr] 106 | .into_iter().map(|entry| (entry.0, build_tree(entry.1.into_iter().collect(), providers))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `entry.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [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/tree/main.rs:118:97 [INFO] [stderr] | [INFO] [stderr] 118 | fn calculate_gini_for_feature(provider: &Box i8>, data: &[TrainObject], classes: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[i8]` [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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/tree/main.rs:118:41 [INFO] [stderr] | [INFO] [stderr] 118 | fn calculate_gini_for_feature(provider: &Box i8>, data: &[TrainObject], classes: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&Fn(&Object) -> i8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a HashMap. Using `[]` is more clear and more concise [INFO] [stderr] --> src/tree/main.rs:34:16 [INFO] [stderr] | [INFO] [stderr] 34 | return self.route_map.get(&target_feature_value).unwrap().get_class(obj); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `&self.route_map[&target_feature_value]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/tree/main.rs:106:63 [INFO] [stderr] | [INFO] [stderr] 106 | .into_iter().map(|entry| (entry.0, build_tree(entry.1.into_iter().collect(), providers))) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: consider removing `.into_iter()`: `entry.1` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::identity_conversion)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#identity_conversion [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/tree/main.rs:118:97 [INFO] [stderr] | [INFO] [stderr] 118 | fn calculate_gini_for_feature(provider: &Box i8>, data: &[TrainObject], classes: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^ help: change this to: `&[i8]` [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: you seem to be trying to use `&Box`. Consider using just `&T` [INFO] [stderr] --> src/tree/main.rs:118:41 [INFO] [stderr] | [INFO] [stderr] 118 | fn calculate_gini_for_feature(provider: &Box i8>, data: &[TrainObject], classes: &Vec) -> f64 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `&Fn(&Object) -> i8` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::borrowed_box)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#borrowed_box [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1.67s [INFO] running `"docker" "inspect" "e9a5ce64f001bdd035d0ad49d8acf5db31385fc0b2abbce5de9bfd4e1fb2ed9c"` [INFO] running `"docker" "rm" "-f" "e9a5ce64f001bdd035d0ad49d8acf5db31385fc0b2abbce5de9bfd4e1fb2ed9c"` [INFO] [stdout] e9a5ce64f001bdd035d0ad49d8acf5db31385fc0b2abbce5de9bfd4e1fb2ed9c