[INFO] updating cached repository joris-r/grandbec [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/joris-r/grandbec [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/joris-r/grandbec" "work/ex/clippy-test-run/sources/stable/gh/joris-r/grandbec"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/joris-r/grandbec'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/joris-r/grandbec" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/joris-r/grandbec"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/joris-r/grandbec'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] ab916600a0815acab1f87d7bd4517685034b4d21 [INFO] sha for GitHub repo joris-r/grandbec: ab916600a0815acab1f87d7bd4517685034b4d21 [INFO] validating manifest of joris-r/grandbec 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 joris-r/grandbec 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 joris-r/grandbec [INFO] finished frobbing joris-r/grandbec [INFO] frobbed toml for joris-r/grandbec written to work/ex/clippy-test-run/sources/stable/gh/joris-r/grandbec/Cargo.toml [INFO] started frobbing joris-r/grandbec [INFO] finished frobbing joris-r/grandbec [INFO] frobbed toml for joris-r/grandbec written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/joris-r/grandbec/Cargo.toml [INFO] crate joris-r/grandbec 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 joris-r/grandbec against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/joris-r/grandbec:/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] 582ca131dcb2253bb04abff117dbb8a6a0f987fd0c0d16668036bae4a791d3c8 [INFO] running `"docker" "start" "-a" "582ca131dcb2253bb04abff117dbb8a6a0f987fd0c0d16668036bae4a791d3c8"` [INFO] [stderr] Compiling gio v0.1.3 [INFO] [stderr] Compiling gdk-pixbuf v0.1.3 [INFO] [stderr] Compiling gdk v0.5.3 [INFO] [stderr] Compiling gtk v0.1.3 [INFO] [stderr] Compiling gio-sys v0.3.4 [INFO] [stderr] Compiling gdk-pixbuf-sys v0.3.4 [INFO] [stderr] Compiling pango-sys v0.3.4 [INFO] [stderr] Compiling gdk-sys v0.3.4 [INFO] [stderr] Compiling gtk-sys v0.3.4 [INFO] [stderr] Checking glib-sys v0.3.4 [INFO] [stderr] Checking cairo-sys-rs v0.3.4 [INFO] [stderr] Checking gobject-sys v0.3.4 [INFO] [stderr] Checking glib v0.1.3 [INFO] [stderr] Checking atk-sys v0.3.4 [INFO] [stderr] Checking pango v0.1.3 [INFO] [stderr] Checking cairo-rs v0.1.3 [INFO] [stderr] Checking grandbec v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/file.rs:114:39 [INFO] [stderr] | [INFO] [stderr] 114 | data.add_section(&Section{id:id, name:name.to_string()}); [INFO] [stderr] | ^^^^^ help: replace it with: `id` [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/file.rs:121:35 [INFO] [stderr] | [INFO] [stderr] 121 | data.add_group(&Group{id:id, name:name.to_string()}); [INFO] [stderr] | ^^^^^ help: replace it with: `id` [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/file.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | id : id, [INFO] [stderr] | ^^^^^^^ help: replace it with: `id` [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/file.rs:136:17 [INFO] [stderr] | [INFO] [stderr] 136 | group : group, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `group` [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/file.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | section : section, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `section` [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/file.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | quantity : quantity, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `quantity` [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/file.rs:158:17 [INFO] [stderr] | [INFO] [stderr] 158 | id : id, [INFO] [stderr] | ^^^^^^^ help: replace it with: `id` [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/gui_recipe.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | gui_recipe_list : gui_recipe_list, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gui_recipe_list` [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/file.rs:114:39 [INFO] [stderr] | [INFO] [stderr] 114 | data.add_section(&Section{id:id, name:name.to_string()}); [INFO] [stderr] | ^^^^^ help: replace it with: `id` [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/file.rs:121:35 [INFO] [stderr] | [INFO] [stderr] 121 | data.add_group(&Group{id:id, name:name.to_string()}); [INFO] [stderr] | ^^^^^ help: replace it with: `id` [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/file.rs:134:17 [INFO] [stderr] | [INFO] [stderr] 134 | id : id, [INFO] [stderr] | ^^^^^^^ help: replace it with: `id` [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/file.rs:136:17 [INFO] [stderr] | [INFO] [stderr] 136 | group : group, [INFO] [stderr] | ^^^^^^^^^^^^^ help: replace it with: `group` [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/file.rs:137:17 [INFO] [stderr] | [INFO] [stderr] 137 | section : section, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: replace it with: `section` [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/file.rs:138:17 [INFO] [stderr] | [INFO] [stderr] 138 | quantity : quantity, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: replace it with: `quantity` [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/file.rs:158:17 [INFO] [stderr] | [INFO] [stderr] 158 | id : id, [INFO] [stderr] | ^^^^^^^ help: replace it with: `id` [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/gui_recipe.rs:31:13 [INFO] [stderr] | [INFO] [stderr] 31 | gui_recipe_list : gui_recipe_list, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `gui_recipe_list` [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/logic.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/gui_goods.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | gs [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/gui_goods.rs:19:18 [INFO] [stderr] | [INFO] [stderr] 19 | let gs = GuiGoods { [INFO] [stderr] | __________________^ [INFO] [stderr] 20 | | data : data.clone(), [INFO] [stderr] 21 | | grid : gtk::Grid::new(), [INFO] [stderr] 22 | | last : -1, [INFO] [stderr] 23 | | myself : None, [INFO] [stderr] 24 | | }; [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/gui_recipe_list.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | gs [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/gui_recipe_list.rs:20:18 [INFO] [stderr] | [INFO] [stderr] 20 | let gs = GuiRecipeList { [INFO] [stderr] | __________________^ [INFO] [stderr] 21 | | data : data.clone(), [INFO] [stderr] 22 | | recipes_list : gtk::ListBox::new(), [INFO] [stderr] 23 | | new_but : gtk::Button::new_with_label("Ajouter"), [INFO] [stderr] 24 | | info : HashMap::new(), [INFO] [stderr] 25 | | }; [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/gui_recipe.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | gs [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/gui_recipe.rs:25:18 [INFO] [stderr] | [INFO] [stderr] 25 | let gs = GuiRecipe { [INFO] [stderr] | __________________^ [INFO] [stderr] 26 | | data : data.clone(), [INFO] [stderr] 27 | | main_widget : gtk::Paned::new(gtk::Orientation::Horizontal), [INFO] [stderr] 28 | | recipe : None, [INFO] [stderr] ... | [INFO] [stderr] 32 | | catal_ingr : GuiIngrList::new(&data.clone()), [INFO] [stderr] 33 | | }; [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: unneeded return statement [INFO] [stderr] --> src/gui_unit.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | return c; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `c` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/gui_ingr_list.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | gs [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/gui_ingr_list.rs:18:18 [INFO] [stderr] | [INFO] [stderr] 18 | let gs = GuiIngrList { [INFO] [stderr] | __________________^ [INFO] [stderr] 19 | | data : data.clone(), [INFO] [stderr] 20 | | list : gtk::ListBox::new(), [INFO] [stderr] 21 | | }; [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: unneeded return statement [INFO] [stderr] --> src/logic.rs:76:9 [INFO] [stderr] | [INFO] [stderr] 76 | return false; [INFO] [stderr] | ^^^^^^^^^^^^^ help: remove `return` as shown: `false` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/gui_goods.rs:25:9 [INFO] [stderr] | [INFO] [stderr] 25 | gs [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/gui_goods.rs:19:18 [INFO] [stderr] | [INFO] [stderr] 19 | let gs = GuiGoods { [INFO] [stderr] | __________________^ [INFO] [stderr] 20 | | data : data.clone(), [INFO] [stderr] 21 | | grid : gtk::Grid::new(), [INFO] [stderr] 22 | | last : -1, [INFO] [stderr] 23 | | myself : None, [INFO] [stderr] 24 | | }; [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/gui_recipe_list.rs:26:9 [INFO] [stderr] | [INFO] [stderr] 26 | gs [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/gui_recipe_list.rs:20:18 [INFO] [stderr] | [INFO] [stderr] 20 | let gs = GuiRecipeList { [INFO] [stderr] | __________________^ [INFO] [stderr] 21 | | data : data.clone(), [INFO] [stderr] 22 | | recipes_list : gtk::ListBox::new(), [INFO] [stderr] 23 | | new_but : gtk::Button::new_with_label("Ajouter"), [INFO] [stderr] 24 | | info : HashMap::new(), [INFO] [stderr] 25 | | }; [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/gui_recipe.rs:34:9 [INFO] [stderr] | [INFO] [stderr] 34 | gs [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/gui_recipe.rs:25:18 [INFO] [stderr] | [INFO] [stderr] 25 | let gs = GuiRecipe { [INFO] [stderr] | __________________^ [INFO] [stderr] 26 | | data : data.clone(), [INFO] [stderr] 27 | | main_widget : gtk::Paned::new(gtk::Orientation::Horizontal), [INFO] [stderr] 28 | | recipe : None, [INFO] [stderr] ... | [INFO] [stderr] 32 | | catal_ingr : GuiIngrList::new(&data.clone()), [INFO] [stderr] 33 | | }; [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: unneeded return statement [INFO] [stderr] --> src/gui_unit.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | return c; [INFO] [stderr] | ^^^^^^^^^ help: remove `return` as shown: `c` [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: returning the result of a let binding from a block. Consider returning the expression directly. [INFO] [stderr] --> src/gui_ingr_list.rs:22:9 [INFO] [stderr] | [INFO] [stderr] 22 | gs [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] note: this expression can be directly returned [INFO] [stderr] --> src/gui_ingr_list.rs:18:18 [INFO] [stderr] | [INFO] [stderr] 18 | let gs = GuiIngrList { [INFO] [stderr] | __________________^ [INFO] [stderr] 19 | | data : data.clone(), [INFO] [stderr] 20 | | list : gtk::ListBox::new(), [INFO] [stderr] 21 | | }; [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: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | let mut i = d.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | let mut i = d.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | let mut i = d.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:169:17 [INFO] [stderr] | [INFO] [stderr] 169 | let mut i = data.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:195:17 [INFO] [stderr] | [INFO] [stderr] 195 | let mut i = data.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | let mut i = d.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | let mut i = d.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:130:17 [INFO] [stderr] | [INFO] [stderr] 130 | let mut i = d.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:144:17 [INFO] [stderr] | [INFO] [stderr] 144 | let mut i = d.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:169:17 [INFO] [stderr] | [INFO] [stderr] 169 | let mut i = data.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:195:17 [INFO] [stderr] | [INFO] [stderr] 195 | let mut i = data.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/gui_goods.rs:112:17 [INFO] [stderr] | [INFO] [stderr] 112 | let mut i = d.get_ingredient_mut(i_id); [INFO] [stderr] | ----^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/logic.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | / for x in self.catalog.groups.values() { [INFO] [stderr] 84 | | g = Some(x.clone()); [INFO] [stderr] 85 | | break; [INFO] [stderr] 86 | | } [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/logic.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | / for x in self.catalog.sections.values() { [INFO] [stderr] 92 | | s = Some(x.clone()); [INFO] [stderr] 93 | | break; [INFO] [stderr] 94 | | } [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/logic.rs:203:24 [INFO] [stderr] | [INFO] [stderr] 203 | quantity : quantity.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*quantity` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/file.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | for ref section in data.iter_sections() { [INFO] [stderr] | ^^^^^^^^^^^ -------------------- help: try: `let section = &data.iter_sections();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/file.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | for ref group in data.iter_groups() { [INFO] [stderr] | ^^^^^^^^^ ------------------ help: try: `let group = &data.iter_groups();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/file.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | for ref recipe in data.iter_recipes() { [INFO] [stderr] | ^^^^^^^^^^ ------------------- help: try: `let recipe = &data.iter_recipes();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/logic.rs:83:9 [INFO] [stderr] | [INFO] [stderr] 83 | / for x in self.catalog.groups.values() { [INFO] [stderr] 84 | | g = Some(x.clone()); [INFO] [stderr] 85 | | break; [INFO] [stderr] 86 | | } [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::never_loop)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/logic.rs:91:9 [INFO] [stderr] | [INFO] [stderr] 91 | / for x in self.catalog.sections.values() { [INFO] [stderr] 92 | | s = Some(x.clone()); [INFO] [stderr] 93 | | break; [INFO] [stderr] 94 | | } [INFO] [stderr] | |__________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#never_loop [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/logic.rs:203:24 [INFO] [stderr] | [INFO] [stderr] 203 | quantity : quantity.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: try dereferencing it: `*quantity` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/file.rs:19:13 [INFO] [stderr] | [INFO] [stderr] 19 | for ref section in data.iter_sections() { [INFO] [stderr] | ^^^^^^^^^^^ -------------------- help: try: `let section = &data.iter_sections();` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::toplevel_ref_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/file.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | for ref group in data.iter_groups() { [INFO] [stderr] | ^^^^^^^^^ ------------------ help: try: `let group = &data.iter_groups();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/file.rs:52:13 [INFO] [stderr] | [INFO] [stderr] 52 | for ref recipe in data.iter_recipes() { [INFO] [stderr] | ^^^^^^^^^^ ------------------- help: try: `let recipe = &data.iter_recipes();` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#toplevel_ref_arg [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe_list.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / match olbr { [INFO] [stderr] 39 | | &Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] 40 | | _ => {}, [INFO] [stderr] 41 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Some(ref lbr) = olbr {lbr.activate();}` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gui_recipe_list.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / match olbr { [INFO] [stderr] 39 | | &Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] 40 | | _ => {}, [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] 38 | match *olbr { [INFO] [stderr] 39 | Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | / match self.main_widget.get_child1() { [INFO] [stderr] 70 | | Some(w) => w.destroy(), [INFO] [stderr] 71 | | None => () [INFO] [stderr] 72 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Some(w) = self.main_widget.get_child1() { w.destroy() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | / match self.main_widget.get_child1() { [INFO] [stderr] 77 | | Some(w) => w.destroy(), [INFO] [stderr] 78 | | None => () [INFO] [stderr] 79 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(w) = self.main_widget.get_child1() { w.destroy() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | / match self.main_widget.get_child1() { [INFO] [stderr] 150 | | Some(w) => w.destroy(), [INFO] [stderr] 151 | | None => () [INFO] [stderr] 152 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Some(w) = self.main_widget.get_child1() { w.destroy() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe.rs:156:17 [INFO] [stderr] | [INFO] [stderr] 156 | / match self.main_widget.get_child1() { [INFO] [stderr] 157 | | Some(w) => w.destroy(), [INFO] [stderr] 158 | | None => () [INFO] [stderr] 159 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(w) = self.main_widget.get_child1() { w.destroy() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/gui_unit.rs:6:36 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn create_combo_of_unit(unit : & Unit) -> gtk::ComboBoxText { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Unit` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_ingr_list.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | / match olbr { [INFO] [stderr] 35 | | &Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] 36 | | _ => {}, [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Some(ref lbr) = olbr {lbr.activate();}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gui_ingr_list.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | / match olbr { [INFO] [stderr] 35 | | &Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] 36 | | _ => {}, [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 34 | match *olbr { [INFO] [stderr] 35 | Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe_list.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / match olbr { [INFO] [stderr] 39 | | &Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] 40 | | _ => {}, [INFO] [stderr] 41 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Some(ref lbr) = olbr {lbr.activate();}` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gui_recipe_list.rs:38:13 [INFO] [stderr] | [INFO] [stderr] 38 | / match olbr { [INFO] [stderr] 39 | | &Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] 40 | | _ => {}, [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] 38 | match *olbr { [INFO] [stderr] 39 | Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `grandbec`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe.rs:69:17 [INFO] [stderr] | [INFO] [stderr] 69 | / match self.main_widget.get_child1() { [INFO] [stderr] 70 | | Some(w) => w.destroy(), [INFO] [stderr] 71 | | None => () [INFO] [stderr] 72 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Some(w) = self.main_widget.get_child1() { w.destroy() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe.rs:76:17 [INFO] [stderr] | [INFO] [stderr] 76 | / match self.main_widget.get_child1() { [INFO] [stderr] 77 | | Some(w) => w.destroy(), [INFO] [stderr] 78 | | None => () [INFO] [stderr] 79 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(w) = self.main_widget.get_child1() { w.destroy() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe.rs:149:17 [INFO] [stderr] | [INFO] [stderr] 149 | / match self.main_widget.get_child1() { [INFO] [stderr] 150 | | Some(w) => w.destroy(), [INFO] [stderr] 151 | | None => () [INFO] [stderr] 152 | | }; [INFO] [stderr] | |_________________^ help: try this: `if let Some(w) = self.main_widget.get_child1() { w.destroy() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_recipe.rs:156:17 [INFO] [stderr] | [INFO] [stderr] 156 | / match self.main_widget.get_child1() { [INFO] [stderr] 157 | | Some(w) => w.destroy(), [INFO] [stderr] 158 | | None => () [INFO] [stderr] 159 | | } [INFO] [stderr] | |_________________^ help: try this: `if let Some(w) = self.main_widget.get_child1() { w.destroy() }` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/gui_unit.rs:6:36 [INFO] [stderr] | [INFO] [stderr] 6 | pub fn create_combo_of_unit(unit : & Unit) -> gtk::ComboBoxText { [INFO] [stderr] | ^^^^^^ help: consider passing by value instead: `Unit` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_ingr_list.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | / match olbr { [INFO] [stderr] 35 | | &Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] 36 | | _ => {}, [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____________^ help: try this: `if let &Some(ref lbr) = olbr {lbr.activate();}` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gui_ingr_list.rs:34:13 [INFO] [stderr] | [INFO] [stderr] 34 | / match olbr { [INFO] [stderr] 35 | | &Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] 36 | | _ => {}, [INFO] [stderr] 37 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [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] 34 | match *olbr { [INFO] [stderr] 35 | Some(ref lbr) => {lbr.activate();}, [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] error: aborting due to 2 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `grandbec`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "582ca131dcb2253bb04abff117dbb8a6a0f987fd0c0d16668036bae4a791d3c8"` [INFO] running `"docker" "rm" "-f" "582ca131dcb2253bb04abff117dbb8a6a0f987fd0c0d16668036bae4a791d3c8"` [INFO] [stdout] 582ca131dcb2253bb04abff117dbb8a6a0f987fd0c0d16668036bae4a791d3c8