[INFO] updating cached repository michaeljones/mango [INFO] running `"git" "fetch" "--all"` [INFO] [stdout] Fetching origin [INFO] [stderr] From git://github.com/michaeljones/mango [INFO] [stderr] * branch HEAD -> FETCH_HEAD [INFO] running `"git" "clone" "work/cache/sources/gh/michaeljones/mango" "work/ex/clippy-test-run/sources/stable/gh/michaeljones/mango"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable/gh/michaeljones/mango'... [INFO] [stderr] done. [INFO] running `"git" "clone" "work/cache/sources/gh/michaeljones/mango" "work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/michaeljones/mango"` [INFO] [stderr] Cloning into 'work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/michaeljones/mango'... [INFO] [stderr] done. [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 4e6cd39c5c1dd481d2d8d99e13083017ce6bc683 [INFO] sha for GitHub repo michaeljones/mango: 4e6cd39c5c1dd481d2d8d99e13083017ce6bc683 [INFO] validating manifest of michaeljones/mango 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 michaeljones/mango 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 michaeljones/mango [INFO] finished frobbing michaeljones/mango [INFO] frobbed toml for michaeljones/mango written to work/ex/clippy-test-run/sources/stable/gh/michaeljones/mango/Cargo.toml [INFO] started frobbing michaeljones/mango [INFO] finished frobbing michaeljones/mango [INFO] frobbed toml for michaeljones/mango written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/gh/michaeljones/mango/Cargo.toml [INFO] crate michaeljones/mango 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 michaeljones/mango against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-3/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/gh/michaeljones/mango:/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] a77c7eddfd63c9e8ef7df08f94aa31861f67d4c127975488cc13f4a5b2d1ed5b [INFO] running `"docker" "start" "-a" "a77c7eddfd63c9e8ef7df08f94aa31861f67d4c127975488cc13f4a5b2d1ed5b"` [INFO] [stderr] Compiling libc v0.2.34 [INFO] [stderr] Compiling num-traits v0.1.41 [INFO] [stderr] Checking json v0.11.12 [INFO] [stderr] Checking rand v0.3.19 [INFO] [stderr] Checking shared_library v0.1.8 [INFO] [stderr] Checking atty v0.2.6 [INFO] [stderr] Checking num-complex v0.1.41 [INFO] [stderr] Checking arrayvec v0.4.6 [INFO] [stderr] Checking petgraph v0.4.10 [INFO] [stderr] Compiling wayland-scanner v0.12.4 [INFO] [stderr] Checking ordered-float v0.5.0 [INFO] [stderr] Checking osmesa-sys v0.1.2 [INFO] [stderr] Checking clap v2.29.0 [INFO] [stderr] Checking dlib v0.4.0 [INFO] [stderr] Compiling gl_generator v0.7.0 [INFO] [stderr] Checking x11-dl v2.17.2 [INFO] [stderr] Compiling conrod_derive v0.1.0 [INFO] [stderr] Compiling serde_json v0.9.10 [INFO] [stderr] Checking tempfile v2.2.0 [INFO] [stderr] Checking num-bigint v0.1.41 [INFO] [stderr] Checking rusttype v0.3.0 [INFO] [stderr] Checking wayland-sys v0.12.4 [INFO] [stderr] Compiling wayland-client v0.12.4 [INFO] [stderr] Compiling wayland-protocols v0.12.4 [INFO] [stderr] Checking daggy v0.5.0 [INFO] [stderr] Compiling phf_generator v0.7.21 [INFO] [stderr] Compiling glutin v0.11.0 [INFO] [stderr] Compiling glium v0.19.0 [INFO] [stderr] Checking num-rational v0.1.40 [INFO] [stderr] Compiling phf_codegen v0.7.21 [INFO] [stderr] Compiling target_build_utils v0.3.1 [INFO] [stderr] Checking num v0.1.41 [INFO] [stderr] Checking wayland-kbd v0.13.0 [INFO] [stderr] Checking wayland-window v0.13.2 [INFO] [stderr] Checking winit v0.9.0 [INFO] [stderr] Compiling libloading v0.3.4 [INFO] [stderr] Checking dlib v0.3.1 [INFO] [stderr] Checking wayland-sys v0.9.10 [INFO] [stderr] Checking wayland-client v0.9.10 [INFO] [stderr] Checking conrod v0.57.0 [INFO] [stderr] Checking mango v0.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/nodes/standard_in.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | id: id, [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/nodes/standard_out.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | 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/nodes/lines.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | 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/nodes/string_contains.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | 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/nodes/json_parse.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | 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/nodes/json_stringify.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | 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/nodes/json_keys.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | 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/nodes/json_object.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | 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/nodes/to_int.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | 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/nodes/sum.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | 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.rs:599:13 [INFO] [stderr] | [INFO] [stderr] 599 | 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_node.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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_node.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | selected: selected, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `selected` [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/build.rs:24:17 [INFO] [stderr] | [INFO] [stderr] 24 | 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/build.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | 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/build.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | 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/build.rs:42:17 [INFO] [stderr] | [INFO] [stderr] 42 | 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/build.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | 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/build.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | 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/build.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | 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/build.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | 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/build.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | 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/build.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | 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/commands.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | node: node, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `node` [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/commands.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | g_node: g_node, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `g_node` [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/commands.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | node: node, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `node` [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/commands.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | g_node: g_node, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `g_node` [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/commands.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | 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/commands.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | from: from, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/commands.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | to: to, [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/commands.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | from: from, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/commands.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | to: to, [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/commands.rs:215:24 [INFO] [stderr] | [INFO] [stderr] 215 | CommandGroup { commands: commands } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `commands` [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/main.rs:168:29 [INFO] [stderr] | [INFO] [stderr] 168 | from: from, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/main.rs:169:29 [INFO] [stderr] | [INFO] [stderr] 169 | to: to, [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/main.rs:195:25 [INFO] [stderr] | [INFO] [stderr] 195 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_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/main.rs:197:25 [INFO] [stderr] | [INFO] [stderr] 197 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/main.rs:198:25 [INFO] [stderr] | [INFO] [stderr] 198 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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/nodes/standard_in.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | id: id, [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/nodes/standard_out.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | 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/nodes/lines.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | 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/nodes/string_contains.rs:95:21 [INFO] [stderr] | [INFO] [stderr] 95 | 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/nodes/json_parse.rs:63:17 [INFO] [stderr] | [INFO] [stderr] 63 | 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/nodes/json_stringify.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | 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/nodes/json_keys.rs:62:17 [INFO] [stderr] | [INFO] [stderr] 62 | 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/nodes/json_object.rs:78:17 [INFO] [stderr] | [INFO] [stderr] 78 | 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/nodes/to_int.rs:66:17 [INFO] [stderr] | [INFO] [stderr] 66 | 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/nodes/sum.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | 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.rs:599:13 [INFO] [stderr] | [INFO] [stderr] 599 | 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_node.rs:65:13 [INFO] [stderr] | [INFO] [stderr] 65 | data: data, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `data` [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_node.rs:67:13 [INFO] [stderr] | [INFO] [stderr] 67 | selected: selected, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `selected` [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/build.rs:24:17 [INFO] [stderr] | [INFO] [stderr] 24 | 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/build.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | 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/build.rs:36:17 [INFO] [stderr] | [INFO] [stderr] 36 | 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/build.rs:42:17 [INFO] [stderr] | [INFO] [stderr] 42 | 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/build.rs:48:17 [INFO] [stderr] | [INFO] [stderr] 48 | 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/build.rs:54:17 [INFO] [stderr] | [INFO] [stderr] 54 | 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/build.rs:60:17 [INFO] [stderr] | [INFO] [stderr] 60 | 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/build.rs:67:17 [INFO] [stderr] | [INFO] [stderr] 67 | 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/build.rs:73:17 [INFO] [stderr] | [INFO] [stderr] 73 | 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/build.rs:79:17 [INFO] [stderr] | [INFO] [stderr] 79 | 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/commands.rs:36:13 [INFO] [stderr] | [INFO] [stderr] 36 | node: node, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `node` [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/commands.rs:37:13 [INFO] [stderr] | [INFO] [stderr] 37 | g_node: g_node, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `g_node` [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/commands.rs:81:13 [INFO] [stderr] | [INFO] [stderr] 81 | node: node, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `node` [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/commands.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | g_node: g_node, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `g_node` [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/commands.rs:122:13 [INFO] [stderr] | [INFO] [stderr] 122 | 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/commands.rs:123:13 [INFO] [stderr] | [INFO] [stderr] 123 | from: from, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/commands.rs:124:13 [INFO] [stderr] | [INFO] [stderr] 124 | to: to, [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/commands.rs:168:13 [INFO] [stderr] | [INFO] [stderr] 168 | from: from, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/commands.rs:169:13 [INFO] [stderr] | [INFO] [stderr] 169 | to: to, [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/commands.rs:215:24 [INFO] [stderr] | [INFO] [stderr] 215 | CommandGroup { commands: commands } [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `commands` [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/main.rs:168:29 [INFO] [stderr] | [INFO] [stderr] 168 | from: from, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `from` [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/main.rs:169:29 [INFO] [stderr] | [INFO] [stderr] 169 | to: to, [INFO] [stderr] | ^^^^^^ help: replace it with: `to` [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/main.rs:195:25 [INFO] [stderr] | [INFO] [stderr] 195 | node_id: node_id, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `node_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/main.rs:197:25 [INFO] [stderr] | [INFO] [stderr] 197 | x: x, [INFO] [stderr] | ^^^^ help: replace it with: `x` [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/main.rs:198:25 [INFO] [stderr] | [INFO] [stderr] 198 | y: y, [INFO] [stderr] | ^^^^ help: replace it with: `y` [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 unit return type [INFO] [stderr] --> src/nodes/standard_in.rs:42:84 [INFO] [stderr] | [INFO] [stderr] 42 | fn set_input(&mut self, _node: Option>>, _index: Option) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/standard_out.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/standard_out.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | return FlowData::None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::None` [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 unit return type [INFO] [stderr] --> src/nodes/standard_out.rs:44:83 [INFO] [stderr] | [INFO] [stderr] 44 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/lines.rs:24:21 [INFO] [stderr] | [INFO] [stderr] 24 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/lines.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | / return match content { [INFO] [stderr] 29 | | FlowData::String(text) => { [INFO] [stderr] 30 | | let mut output = vec![]; [INFO] [stderr] 31 | | for i in text.lines() { [INFO] [stderr] ... | [INFO] [stderr] 37 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 38 | | }; [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] 28 | match content { [INFO] [stderr] 29 | FlowData::String(text) => { [INFO] [stderr] 30 | let mut output = vec![]; [INFO] [stderr] 31 | for i in text.lines() { [INFO] [stderr] 32 | output.push(i.to_string()); [INFO] [stderr] 33 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/lines.rs:43:83 [INFO] [stderr] | [INFO] [stderr] 43 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/string_contains.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/string_contains.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | / return match content { [INFO] [stderr] 34 | | FlowData::StringArray(lines) => { [INFO] [stderr] 35 | | let mut output = vec![]; [INFO] [stderr] 36 | | for i in &lines { [INFO] [stderr] ... | [INFO] [stderr] 44 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 45 | | }; [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] 33 | match content { [INFO] [stderr] 34 | FlowData::StringArray(lines) => { [INFO] [stderr] 35 | let mut output = vec![]; [INFO] [stderr] 36 | for i in &lines { [INFO] [stderr] 37 | if i.contains(self.value.as_str()) { [INFO] [stderr] 38 | output.push(i.to_string()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/string_contains.rs:50:83 [INFO] [stderr] | [INFO] [stderr] 50 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/json_parse.rs:26:21 [INFO] [stderr] | [INFO] [stderr] 26 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/json_parse.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / return match content { [INFO] [stderr] 31 | | FlowData::String(text) => { [INFO] [stderr] 32 | | match json::parse(&text) { [INFO] [stderr] 33 | | Ok(data) => FlowData::Json(data), [INFO] [stderr] ... | [INFO] [stderr] 38 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 39 | | }; [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] 30 | match content { [INFO] [stderr] 31 | FlowData::String(text) => { [INFO] [stderr] 32 | match json::parse(&text) { [INFO] [stderr] 33 | Ok(data) => FlowData::Json(data), [INFO] [stderr] 34 | Err(_e) => FlowData::Error("Failed to parse json".to_string()), [INFO] [stderr] 35 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/json_parse.rs:44:83 [INFO] [stderr] | [INFO] [stderr] 44 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/json_stringify.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/json_stringify.rs:31:17 [INFO] [stderr] | [INFO] [stderr] 31 | / return match content { [INFO] [stderr] 32 | | FlowData::Json(data) => FlowData::String(json::stringify(data)), [INFO] [stderr] 33 | | FlowData::Error(string) => FlowData::Error(string), [INFO] [stderr] 34 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 35 | | }; [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] 31 | match content { [INFO] [stderr] 32 | FlowData::Json(data) => FlowData::String(json::stringify(data)), [INFO] [stderr] 33 | FlowData::Error(string) => FlowData::Error(string), [INFO] [stderr] 34 | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 35 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/json_stringify.rs:40:83 [INFO] [stderr] | [INFO] [stderr] 40 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/json_keys.rs:24:21 [INFO] [stderr] | [INFO] [stderr] 24 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/json_keys.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | / return match content { [INFO] [stderr] 29 | | FlowData::Json(data) => { [INFO] [stderr] 30 | | let mut keys = vec![]; [INFO] [stderr] 31 | | for (key, _value) in data.entries() { [INFO] [stderr] ... | [INFO] [stderr] 37 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 38 | | }; [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] 28 | match content { [INFO] [stderr] 29 | FlowData::Json(data) => { [INFO] [stderr] 30 | let mut keys = vec![]; [INFO] [stderr] 31 | for (key, _value) in data.entries() { [INFO] [stderr] 32 | keys.push(key.to_string()); [INFO] [stderr] 33 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/json_keys.rs:43:83 [INFO] [stderr] | [INFO] [stderr] 43 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/json_object.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | / return match (keys_content, values_content) { [INFO] [stderr] 36 | | (FlowData::StringArray(keys), FlowData::StringArray(values)) => { [INFO] [stderr] 37 | | let mut object = json::object::Object::new(); [INFO] [stderr] 38 | | for (key, value) in keys.iter().zip(values.iter()) { [INFO] [stderr] ... | [INFO] [stderr] 43 | | _ => FlowData::Error("Incorrect inputs".to_string()), [INFO] [stderr] 44 | | }; [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] 35 | match (keys_content, values_content) { [INFO] [stderr] 36 | (FlowData::StringArray(keys), FlowData::StringArray(values)) => { [INFO] [stderr] 37 | let mut object = json::object::Object::new(); [INFO] [stderr] 38 | for (key, value) in keys.iter().zip(values.iter()) { [INFO] [stderr] 39 | object.insert(key, json::JsonValue::String(value.to_string())); [INFO] [stderr] 40 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/json_object.rs:50:82 [INFO] [stderr] | [INFO] [stderr] 50 | fn set_input(&mut self, node: Option>>, index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/to_int.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/to_int.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | / return match content { [INFO] [stderr] 30 | | FlowData::StringArray(lines) => { [INFO] [stderr] 31 | | let mut output = vec![]; [INFO] [stderr] 32 | | for line in &lines { [INFO] [stderr] ... | [INFO] [stderr] 41 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 42 | | }; [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] 29 | match content { [INFO] [stderr] 30 | FlowData::StringArray(lines) => { [INFO] [stderr] 31 | let mut output = vec![]; [INFO] [stderr] 32 | for line in &lines { [INFO] [stderr] 33 | match line.parse::() { [INFO] [stderr] 34 | Ok(int) => output.push(int), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/to_int.rs:47:83 [INFO] [stderr] | [INFO] [stderr] 47 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/sum.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/sum.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | / return match content { [INFO] [stderr] 30 | | FlowData::IntArray(ints) => { [INFO] [stderr] 31 | | return FlowData::Int(ints.iter().sum()); [INFO] [stderr] 32 | | } [INFO] [stderr] 33 | | FlowData::Error(string) => FlowData::Error(string), [INFO] [stderr] 34 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 35 | | }; [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] 29 | match content { [INFO] [stderr] 30 | FlowData::IntArray(ints) => { [INFO] [stderr] 31 | return FlowData::Int(ints.iter().sum()); [INFO] [stderr] 32 | } [INFO] [stderr] 33 | FlowData::Error(string) => FlowData::Error(string), [INFO] [stderr] 34 | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/sum.rs:40:83 [INFO] [stderr] | [INFO] [stderr] 40 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/gui.rs:69:23 [INFO] [stderr] | [INFO] [stderr] 69 | const FONT_PATH: &'static str = concat!( [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/gui.rs:247:29 [INFO] [stderr] | [INFO] [stderr] 247 | / if text == ":" { [INFO] [stderr] 248 | | if params.display_menu == CreateState::None { [INFO] [stderr] 249 | | params.command_line = CommandLine::Text(String::from("")) [INFO] [stderr] 250 | | } [INFO] [stderr] 251 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 247 | if text == ":" && params.display_menu == CreateState::None { [INFO] [stderr] 248 | params.command_line = CommandLine::Text(String::from("")) [INFO] [stderr] 249 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/gui.rs:592:3 [INFO] [stderr] | [INFO] [stderr] 592 | ) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | / return Some(Rc::new(RefCell::new(StandardIn { [INFO] [stderr] 24 | | id: id, [INFO] [stderr] 25 | | cache: None, [INFO] [stderr] 26 | | }))); [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] 23 | Some(Rc::new(RefCell::new(StandardIn { [INFO] [stderr] 24 | id: id, [INFO] [stderr] 25 | cache: None, [INFO] [stderr] 26 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | / return Some(Rc::new(RefCell::new(StandardOut { [INFO] [stderr] 30 | | id: id, [INFO] [stderr] 31 | | input: None, [INFO] [stderr] 32 | | }))); [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] 29 | Some(Rc::new(RefCell::new(StandardOut { [INFO] [stderr] 30 | id: id, [INFO] [stderr] 31 | input: None, [INFO] [stderr] 32 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | / return Some(Rc::new(RefCell::new(Lines { [INFO] [stderr] 36 | | id: id, [INFO] [stderr] 37 | | input: None, [INFO] [stderr] 38 | | }))); [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] 35 | Some(Rc::new(RefCell::new(Lines { [INFO] [stderr] 36 | id: id, [INFO] [stderr] 37 | input: None, [INFO] [stderr] 38 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | / return Some(Rc::new(RefCell::new(JsonParse { [INFO] [stderr] 42 | | id: id, [INFO] [stderr] 43 | | input: None, [INFO] [stderr] 44 | | }))); [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] 41 | Some(Rc::new(RefCell::new(JsonParse { [INFO] [stderr] 42 | id: id, [INFO] [stderr] 43 | input: None, [INFO] [stderr] 44 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | / return Some(Rc::new(RefCell::new(JsonStringify { [INFO] [stderr] 48 | | id: id, [INFO] [stderr] 49 | | input: None, [INFO] [stderr] 50 | | }))); [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] 47 | Some(Rc::new(RefCell::new(JsonStringify { [INFO] [stderr] 48 | id: id, [INFO] [stderr] 49 | input: None, [INFO] [stderr] 50 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | / return Some(Rc::new(RefCell::new(JsonKeys { [INFO] [stderr] 54 | | id: id, [INFO] [stderr] 55 | | input: None, [INFO] [stderr] 56 | | }))); [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] 53 | Some(Rc::new(RefCell::new(JsonKeys { [INFO] [stderr] 54 | id: id, [INFO] [stderr] 55 | input: None, [INFO] [stderr] 56 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | / return Some(Rc::new(RefCell::new(JsonObject { [INFO] [stderr] 60 | | id: id, [INFO] [stderr] 61 | | keys_input: None, [INFO] [stderr] 62 | | values_input: None, [INFO] [stderr] 63 | | }))); [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] 59 | Some(Rc::new(RefCell::new(JsonObject { [INFO] [stderr] 60 | id: id, [INFO] [stderr] 61 | keys_input: None, [INFO] [stderr] 62 | values_input: None, [INFO] [stderr] 63 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | / return Some(Rc::new(RefCell::new(ToInt { [INFO] [stderr] 67 | | id: id, [INFO] [stderr] 68 | | input: None, [INFO] [stderr] 69 | | }))); [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] 66 | Some(Rc::new(RefCell::new(ToInt { [INFO] [stderr] 67 | id: id, [INFO] [stderr] 68 | input: None, [INFO] [stderr] 69 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | / return Some(Rc::new(RefCell::new(Sum { [INFO] [stderr] 73 | | id: id, [INFO] [stderr] 74 | | input: None, [INFO] [stderr] 75 | | }))); [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] 72 | Some(Rc::new(RefCell::new(Sum { [INFO] [stderr] 73 | id: id, [INFO] [stderr] 74 | input: None, [INFO] [stderr] 75 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | / return Some(Rc::new(RefCell::new(StringContains { [INFO] [stderr] 79 | | id: id, [INFO] [stderr] 80 | | input: None, [INFO] [stderr] 81 | | value: "".to_string(), [INFO] [stderr] 82 | | }))); [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] 78 | Some(Rc::new(RefCell::new(StringContains { [INFO] [stderr] 79 | id: id, [INFO] [stderr] 80 | input: None, [INFO] [stderr] 81 | value: "".to_string(), [INFO] [stderr] 82 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:84:14 [INFO] [stderr] | [INFO] [stderr] 84 | _ => return None, [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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 unit return type [INFO] [stderr] --> src/build.rs:94:3 [INFO] [stderr] | [INFO] [stderr] 94 | ) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/build.rs:110:3 [INFO] [stderr] | [INFO] [stderr] 110 | ) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/standard_in.rs:42:84 [INFO] [stderr] | [INFO] [stderr] 42 | fn set_input(&mut self, _node: Option>>, _index: Option) -> () {} [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unused_unit)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/standard_out.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/standard_out.rs:39:17 [INFO] [stderr] | [INFO] [stderr] 39 | return FlowData::None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::None` [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 unit return type [INFO] [stderr] --> src/nodes/standard_out.rs:44:83 [INFO] [stderr] | [INFO] [stderr] 44 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/lines.rs:24:21 [INFO] [stderr] | [INFO] [stderr] 24 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/lines.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | / return match content { [INFO] [stderr] 29 | | FlowData::String(text) => { [INFO] [stderr] 30 | | let mut output = vec![]; [INFO] [stderr] 31 | | for i in text.lines() { [INFO] [stderr] ... | [INFO] [stderr] 37 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 38 | | }; [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] 28 | match content { [INFO] [stderr] 29 | FlowData::String(text) => { [INFO] [stderr] 30 | let mut output = vec![]; [INFO] [stderr] 31 | for i in text.lines() { [INFO] [stderr] 32 | output.push(i.to_string()); [INFO] [stderr] 33 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/lines.rs:43:83 [INFO] [stderr] | [INFO] [stderr] 43 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/string_contains.rs:29:21 [INFO] [stderr] | [INFO] [stderr] 29 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/string_contains.rs:33:17 [INFO] [stderr] | [INFO] [stderr] 33 | / return match content { [INFO] [stderr] 34 | | FlowData::StringArray(lines) => { [INFO] [stderr] 35 | | let mut output = vec![]; [INFO] [stderr] 36 | | for i in &lines { [INFO] [stderr] ... | [INFO] [stderr] 44 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 45 | | }; [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] 33 | match content { [INFO] [stderr] 34 | FlowData::StringArray(lines) => { [INFO] [stderr] 35 | let mut output = vec![]; [INFO] [stderr] 36 | for i in &lines { [INFO] [stderr] 37 | if i.contains(self.value.as_str()) { [INFO] [stderr] 38 | output.push(i.to_string()); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/string_contains.rs:50:83 [INFO] [stderr] | [INFO] [stderr] 50 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/json_parse.rs:26:21 [INFO] [stderr] | [INFO] [stderr] 26 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/json_parse.rs:30:17 [INFO] [stderr] | [INFO] [stderr] 30 | / return match content { [INFO] [stderr] 31 | | FlowData::String(text) => { [INFO] [stderr] 32 | | match json::parse(&text) { [INFO] [stderr] 33 | | Ok(data) => FlowData::Json(data), [INFO] [stderr] ... | [INFO] [stderr] 38 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 39 | | }; [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] 30 | match content { [INFO] [stderr] 31 | FlowData::String(text) => { [INFO] [stderr] 32 | match json::parse(&text) { [INFO] [stderr] 33 | Ok(data) => FlowData::Json(data), [INFO] [stderr] 34 | Err(_e) => FlowData::Error("Failed to parse json".to_string()), [INFO] [stderr] 35 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/json_parse.rs:44:83 [INFO] [stderr] | [INFO] [stderr] 44 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/json_stringify.rs:27:21 [INFO] [stderr] | [INFO] [stderr] 27 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/json_stringify.rs:31:17 [INFO] [stderr] | [INFO] [stderr] 31 | / return match content { [INFO] [stderr] 32 | | FlowData::Json(data) => FlowData::String(json::stringify(data)), [INFO] [stderr] 33 | | FlowData::Error(string) => FlowData::Error(string), [INFO] [stderr] 34 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 35 | | }; [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] 31 | match content { [INFO] [stderr] 32 | FlowData::Json(data) => FlowData::String(json::stringify(data)), [INFO] [stderr] 33 | FlowData::Error(string) => FlowData::Error(string), [INFO] [stderr] 34 | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 35 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/json_stringify.rs:40:83 [INFO] [stderr] | [INFO] [stderr] 40 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/json_keys.rs:24:21 [INFO] [stderr] | [INFO] [stderr] 24 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/json_keys.rs:28:17 [INFO] [stderr] | [INFO] [stderr] 28 | / return match content { [INFO] [stderr] 29 | | FlowData::Json(data) => { [INFO] [stderr] 30 | | let mut keys = vec![]; [INFO] [stderr] 31 | | for (key, _value) in data.entries() { [INFO] [stderr] ... | [INFO] [stderr] 37 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 38 | | }; [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] 28 | match content { [INFO] [stderr] 29 | FlowData::Json(data) => { [INFO] [stderr] 30 | let mut keys = vec![]; [INFO] [stderr] 31 | for (key, _value) in data.entries() { [INFO] [stderr] 32 | keys.push(key.to_string()); [INFO] [stderr] 33 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/json_keys.rs:43:83 [INFO] [stderr] | [INFO] [stderr] 43 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/json_object.rs:35:17 [INFO] [stderr] | [INFO] [stderr] 35 | / return match (keys_content, values_content) { [INFO] [stderr] 36 | | (FlowData::StringArray(keys), FlowData::StringArray(values)) => { [INFO] [stderr] 37 | | let mut object = json::object::Object::new(); [INFO] [stderr] 38 | | for (key, value) in keys.iter().zip(values.iter()) { [INFO] [stderr] ... | [INFO] [stderr] 43 | | _ => FlowData::Error("Incorrect inputs".to_string()), [INFO] [stderr] 44 | | }; [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] 35 | match (keys_content, values_content) { [INFO] [stderr] 36 | (FlowData::StringArray(keys), FlowData::StringArray(values)) => { [INFO] [stderr] 37 | let mut object = json::object::Object::new(); [INFO] [stderr] 38 | for (key, value) in keys.iter().zip(values.iter()) { [INFO] [stderr] 39 | object.insert(key, json::JsonValue::String(value.to_string())); [INFO] [stderr] 40 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/json_object.rs:50:82 [INFO] [stderr] | [INFO] [stderr] 50 | fn set_input(&mut self, node: Option>>, index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/to_int.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/to_int.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | / return match content { [INFO] [stderr] 30 | | FlowData::StringArray(lines) => { [INFO] [stderr] 31 | | let mut output = vec![]; [INFO] [stderr] 32 | | for line in &lines { [INFO] [stderr] ... | [INFO] [stderr] 41 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 42 | | }; [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] 29 | match content { [INFO] [stderr] 30 | FlowData::StringArray(lines) => { [INFO] [stderr] 31 | let mut output = vec![]; [INFO] [stderr] 32 | for line in &lines { [INFO] [stderr] 33 | match line.parse::() { [INFO] [stderr] 34 | Ok(int) => output.push(int), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/to_int.rs:47:83 [INFO] [stderr] | [INFO] [stderr] 47 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/nodes/sum.rs:25:21 [INFO] [stderr] | [INFO] [stderr] 25 | None => return FlowData::Error("No input".to_string()), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove `return` as shown: `FlowData::Error("No input".to_string())` [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/nodes/sum.rs:29:17 [INFO] [stderr] | [INFO] [stderr] 29 | / return match content { [INFO] [stderr] 30 | | FlowData::IntArray(ints) => { [INFO] [stderr] 31 | | return FlowData::Int(ints.iter().sum()); [INFO] [stderr] 32 | | } [INFO] [stderr] 33 | | FlowData::Error(string) => FlowData::Error(string), [INFO] [stderr] 34 | | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] 35 | | }; [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] 29 | match content { [INFO] [stderr] 30 | FlowData::IntArray(ints) => { [INFO] [stderr] 31 | return FlowData::Int(ints.iter().sum()); [INFO] [stderr] 32 | } [INFO] [stderr] 33 | FlowData::Error(string) => FlowData::Error(string), [INFO] [stderr] 34 | _ => FlowData::Error("Unknown data".to_string()), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/nodes/sum.rs:40:83 [INFO] [stderr] | [INFO] [stderr] 40 | fn set_input(&mut self, node: Option>>, _index: Option) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/gui.rs:69:23 [INFO] [stderr] | [INFO] [stderr] 69 | const FONT_PATH: &'static str = concat!( [INFO] [stderr] | -^^^^^^^---- help: consider removing `'static`: `&str` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: this if statement can be collapsed [INFO] [stderr] --> src/gui.rs:247:29 [INFO] [stderr] | [INFO] [stderr] 247 | / if text == ":" { [INFO] [stderr] 248 | | if params.display_menu == CreateState::None { [INFO] [stderr] 249 | | params.command_line = CommandLine::Text(String::from("")) [INFO] [stderr] 250 | | } [INFO] [stderr] 251 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::collapsible_if)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_if [INFO] [stderr] help: try [INFO] [stderr] | [INFO] [stderr] 247 | if text == ":" && params.display_menu == CreateState::None { [INFO] [stderr] 248 | params.command_line = CommandLine::Text(String::from("")) [INFO] [stderr] 249 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/gui.rs:592:3 [INFO] [stderr] | [INFO] [stderr] 592 | ) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | / return Some(Rc::new(RefCell::new(StandardIn { [INFO] [stderr] 24 | | id: id, [INFO] [stderr] 25 | | cache: None, [INFO] [stderr] 26 | | }))); [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] 23 | Some(Rc::new(RefCell::new(StandardIn { [INFO] [stderr] 24 | id: id, [INFO] [stderr] 25 | cache: None, [INFO] [stderr] 26 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:29:13 [INFO] [stderr] | [INFO] [stderr] 29 | / return Some(Rc::new(RefCell::new(StandardOut { [INFO] [stderr] 30 | | id: id, [INFO] [stderr] 31 | | input: None, [INFO] [stderr] 32 | | }))); [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] 29 | Some(Rc::new(RefCell::new(StandardOut { [INFO] [stderr] 30 | id: id, [INFO] [stderr] 31 | input: None, [INFO] [stderr] 32 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:35:13 [INFO] [stderr] | [INFO] [stderr] 35 | / return Some(Rc::new(RefCell::new(Lines { [INFO] [stderr] 36 | | id: id, [INFO] [stderr] 37 | | input: None, [INFO] [stderr] 38 | | }))); [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] 35 | Some(Rc::new(RefCell::new(Lines { [INFO] [stderr] 36 | id: id, [INFO] [stderr] 37 | input: None, [INFO] [stderr] 38 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:41:13 [INFO] [stderr] | [INFO] [stderr] 41 | / return Some(Rc::new(RefCell::new(JsonParse { [INFO] [stderr] 42 | | id: id, [INFO] [stderr] 43 | | input: None, [INFO] [stderr] 44 | | }))); [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] 41 | Some(Rc::new(RefCell::new(JsonParse { [INFO] [stderr] 42 | id: id, [INFO] [stderr] 43 | input: None, [INFO] [stderr] 44 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:47:13 [INFO] [stderr] | [INFO] [stderr] 47 | / return Some(Rc::new(RefCell::new(JsonStringify { [INFO] [stderr] 48 | | id: id, [INFO] [stderr] 49 | | input: None, [INFO] [stderr] 50 | | }))); [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] 47 | Some(Rc::new(RefCell::new(JsonStringify { [INFO] [stderr] 48 | id: id, [INFO] [stderr] 49 | input: None, [INFO] [stderr] 50 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:53:13 [INFO] [stderr] | [INFO] [stderr] 53 | / return Some(Rc::new(RefCell::new(JsonKeys { [INFO] [stderr] 54 | | id: id, [INFO] [stderr] 55 | | input: None, [INFO] [stderr] 56 | | }))); [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] 53 | Some(Rc::new(RefCell::new(JsonKeys { [INFO] [stderr] 54 | id: id, [INFO] [stderr] 55 | input: None, [INFO] [stderr] 56 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:59:13 [INFO] [stderr] | [INFO] [stderr] 59 | / return Some(Rc::new(RefCell::new(JsonObject { [INFO] [stderr] 60 | | id: id, [INFO] [stderr] 61 | | keys_input: None, [INFO] [stderr] 62 | | values_input: None, [INFO] [stderr] 63 | | }))); [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] 59 | Some(Rc::new(RefCell::new(JsonObject { [INFO] [stderr] 60 | id: id, [INFO] [stderr] 61 | keys_input: None, [INFO] [stderr] 62 | values_input: None, [INFO] [stderr] 63 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:66:13 [INFO] [stderr] | [INFO] [stderr] 66 | / return Some(Rc::new(RefCell::new(ToInt { [INFO] [stderr] 67 | | id: id, [INFO] [stderr] 68 | | input: None, [INFO] [stderr] 69 | | }))); [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] 66 | Some(Rc::new(RefCell::new(ToInt { [INFO] [stderr] 67 | id: id, [INFO] [stderr] 68 | input: None, [INFO] [stderr] 69 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:72:13 [INFO] [stderr] | [INFO] [stderr] 72 | / return Some(Rc::new(RefCell::new(Sum { [INFO] [stderr] 73 | | id: id, [INFO] [stderr] 74 | | input: None, [INFO] [stderr] 75 | | }))); [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] 72 | Some(Rc::new(RefCell::new(Sum { [INFO] [stderr] 73 | id: id, [INFO] [stderr] 74 | input: None, [INFO] [stderr] 75 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | / return Some(Rc::new(RefCell::new(StringContains { [INFO] [stderr] 79 | | id: id, [INFO] [stderr] 80 | | input: None, [INFO] [stderr] 81 | | value: "".to_string(), [INFO] [stderr] 82 | | }))); [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] 78 | Some(Rc::new(RefCell::new(StringContains { [INFO] [stderr] 79 | id: id, [INFO] [stderr] 80 | input: None, [INFO] [stderr] 81 | value: "".to_string(), [INFO] [stderr] 82 | }))) [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: unneeded return statement [INFO] [stderr] --> src/build.rs:84:14 [INFO] [stderr] | [INFO] [stderr] 84 | _ => return None, [INFO] [stderr] | ^^^^^^^^^^^ help: remove `return` as shown: `None` [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 unit return type [INFO] [stderr] --> src/build.rs:94:3 [INFO] [stderr] | [INFO] [stderr] 94 | ) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [INFO] [stderr] [INFO] [stderr] warning: unneeded unit return type [INFO] [stderr] --> src/build.rs:110:3 [INFO] [stderr] | [INFO] [stderr] 110 | ) -> () { [INFO] [stderr] | ^^^^^ help: remove the `-> ()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unused_unit [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/nodes/string_contains.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / match (field.as_ref(), data) { [INFO] [stderr] 70 | | ("value", NodeUIData::StringData(string)) => { [INFO] [stderr] 71 | | self.value = string; [INFO] [stderr] 72 | | } [INFO] [stderr] 73 | | _ => {} [INFO] [stderr] 74 | | } [INFO] [stderr] | |_________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 69 | if let ("value", NodeUIData::StringData(string)) = (field.as_ref(), data) { [INFO] [stderr] 70 | self.value = string; [INFO] [stderr] 71 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/gui.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn gui(ui: &mut conrod::Ui, mut params: &mut Params, width: u32, height: u32) { [INFO] [stderr] 52 | | let mut events_loop = glium::glutin::EventsLoop::new(); [INFO] [stderr] 53 | | [INFO] [stderr] 54 | | let window = glium::glutin::WindowBuilder::new() [INFO] [stderr] ... | [INFO] [stderr] 298 | | } [INFO] [stderr] 299 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [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/nodes/string_contains.rs:69:9 [INFO] [stderr] | [INFO] [stderr] 69 | / match (field.as_ref(), data) { [INFO] [stderr] 70 | | ("value", NodeUIData::StringData(string)) => { [INFO] [stderr] 71 | | self.value = string; [INFO] [stderr] 72 | | } [INFO] [stderr] 73 | | _ => {} [INFO] [stderr] 74 | | } [INFO] [stderr] | |_________^ [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] help: try this [INFO] [stderr] | [INFO] [stderr] 69 | if let ("value", NodeUIData::StringData(string)) = (field.as_ref(), data) { [INFO] [stderr] 70 | self.value = string; [INFO] [stderr] 71 | } [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.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | / match event.clone() { [INFO] [stderr] 116 | | Input::Release(Button::Keyboard(Key::Escape)) => { [INFO] [stderr] 117 | | if params.display_menu != CreateState::None { [INFO] [stderr] 118 | | params.display_menu = CreateState::None; [INFO] [stderr] ... | [INFO] [stderr] 124 | | _ => {} [INFO] [stderr] 125 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 115 | if let Input::Release(Button::Keyboard(Key::Escape)) = event.clone() { [INFO] [stderr] 116 | if params.display_menu != CreateState::None { [INFO] [stderr] 117 | params.display_menu = CreateState::None; [INFO] [stderr] 118 | params.name_input = String::from(""); [INFO] [stderr] 119 | } else if params.command_line != CommandLine::None { [INFO] [stderr] 120 | params.command_line = CommandLine::None; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/gui.rs:196:33 [INFO] [stderr] | [INFO] [stderr] 196 | let ref state = global.current; [INFO] [stderr] | ----^^^^^^^^^------------------ help: try: `let state = &global.current;` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui.rs:205:29 [INFO] [stderr] | [INFO] [stderr] 205 | / match params.selected_nodes.len() { [INFO] [stderr] 206 | | 1 => { [INFO] [stderr] 207 | | let selected_node = params.selected_nodes[0]; [INFO] [stderr] 208 | | if let Some(g_node) = params.gui_nodes.get(&selected_node) { [INFO] [stderr] ... | [INFO] [stderr] 222 | | _ => {} [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 205 | if let 1 = params.selected_nodes.len() { [INFO] [stderr] 206 | let selected_node = params.selected_nodes[0]; [INFO] [stderr] 207 | if let Some(g_node) = params.gui_nodes.get(&selected_node) { [INFO] [stderr] 208 | let gn = g_node.borrow(); [INFO] [stderr] 209 | if let Some(input_node_id) = [INFO] [stderr] 210 | find_input_node(gn.node_id, ¶ms.connections) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:213:67 [INFO] [stderr] | [INFO] [stderr] 213 | for (_key, g_node) in ¶ms.gui_nodes { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 213 | for g_node in params.gui_nodes.values() { [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.rs:226:29 [INFO] [stderr] | [INFO] [stderr] 226 | / match params.selected_nodes.len() { [INFO] [stderr] 227 | | 1 => { [INFO] [stderr] 228 | | let selected_node = params.selected_nodes[0]; [INFO] [stderr] 229 | | if let Some(g_node) = params.gui_nodes.get(&selected_node) { [INFO] [stderr] ... | [INFO] [stderr] 243 | | _ => {} [INFO] [stderr] 244 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 226 | if let 1 = params.selected_nodes.len() { [INFO] [stderr] 227 | let selected_node = params.selected_nodes[0]; [INFO] [stderr] 228 | if let Some(g_node) = params.gui_nodes.get(&selected_node) { [INFO] [stderr] 229 | let gn = g_node.borrow(); [INFO] [stderr] 230 | if let Some(input_node_id) = [INFO] [stderr] 231 | find_output_node(gn.node_id, ¶ms.connections) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:234:67 [INFO] [stderr] | [INFO] [stderr] 234 | for (_key, g_node) in ¶ms.gui_nodes { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 234 | for g_node in params.gui_nodes.values() { [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.rs:258:17 [INFO] [stderr] | [INFO] [stderr] 258 | / match event.clone() { [INFO] [stderr] 259 | | Input::Motion(Motion::MouseCursor { x, y }) => { [INFO] [stderr] 260 | | params.mouse_x = x as f64; [INFO] [stderr] 261 | | params.mouse_y = y as f64; [INFO] [stderr] 262 | | } [INFO] [stderr] 263 | | _ => {} [INFO] [stderr] 264 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 258 | if let Input::Motion(Motion::MouseCursor { x, y }) = event.clone() { [INFO] [stderr] 259 | params.mouse_x = x as f64; [INFO] [stderr] 260 | params.mouse_y = y as f64; [INFO] [stderr] 261 | } [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.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | / match event { [INFO] [stderr] 268 | | glium::glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 269 | | // Break from the loop upon `Escape`. [INFO] [stderr] 270 | | glium::glutin::WindowEvent::Closed [INFO] [stderr] ... | [INFO] [stderr] 281 | | _ => (), [INFO] [stderr] 282 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 267 | if let glium::glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 268 | // Break from the loop upon `Escape`. [INFO] [stderr] 269 | glium::glutin::WindowEvent::Closed [INFO] [stderr] 270 | | glium::glutin::WindowEvent::KeyboardInput { [INFO] [stderr] 271 | input: [INFO] [stderr] 272 | glium::glutin::KeyboardInput { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gui.rs:311:5 [INFO] [stderr] | [INFO] [stderr] 311 | / match param_ui { [INFO] [stderr] 312 | | &NodeUI::None => { [INFO] [stderr] 313 | | let id = ids.walk().next(ids, &mut ui.widget_id_generator()); [INFO] [stderr] 314 | | widget::Text::new("Nothing") [INFO] [stderr] ... | [INFO] [stderr] 342 | | } [INFO] [stderr] 343 | | } [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] 311 | match *param_ui { [INFO] [stderr] 312 | NodeUI::None => { [INFO] [stderr] 313 | let id = ids.walk().next(ids, &mut ui.widget_id_generator()); [INFO] [stderr] 314 | widget::Text::new("Nothing") [INFO] [stderr] 315 | .parent(parent_id) [INFO] [stderr] 316 | .middle_of(parent_id) [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.rs:334:21 [INFO] [stderr] | [INFO] [stderr] 334 | / match event { [INFO] [stderr] 335 | | widget::text_box::Event::Update(string) => { [INFO] [stderr] 336 | | nn.set_value(&data.field, NodeUIData::StringData(string)); [INFO] [stderr] 337 | | } [INFO] [stderr] 338 | | _ => {} [INFO] [stderr] 339 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 334 | if let widget::text_box::Event::Update(string) = event { [INFO] [stderr] 335 | nn.set_value(&data.field, NodeUIData::StringData(string)); [INFO] [stderr] 336 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/gui.rs:347:5 [INFO] [stderr] | [INFO] [stderr] 347 | ref mut ui: conrod::UiCell, [INFO] [stderr] | ^^^^^^^^^^ [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: for loop over `widgets::Background::new() [INFO] [stderr] .parent(ids.node_panel) [INFO] [stderr] .set(ids.node_background, ui)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/gui.rs:371:18 [INFO] [stderr] | [INFO] [stderr] 371 | for event in widgets::Background::new() [INFO] [stderr] | __________________^ [INFO] [stderr] 372 | | .parent(ids.node_panel) [INFO] [stderr] 373 | | .set(ids.node_background, ui) [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for event in widgets::Background::new() [INFO] [stderr] .parent(ids.node_panel) [INFO] [stderr] .set(ids.node_background, ui)` with `if let Some(event) = widgets::Background::new() [INFO] [stderr] .parent(ids.node_panel) [INFO] [stderr] .set(ids.node_background, ui)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [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.rs:375:9 [INFO] [stderr] | [INFO] [stderr] 375 | / match event { [INFO] [stderr] 376 | | widgets::Event::Click => { [INFO] [stderr] 377 | | params.selected_nodes = vec![]; [INFO] [stderr] 378 | | } [INFO] [stderr] 379 | | _ => {} [INFO] [stderr] 380 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 375 | if let widgets::Event::Click = event { [INFO] [stderr] 376 | params.selected_nodes = vec![]; [INFO] [stderr] 377 | } [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.rs:383:5 [INFO] [stderr] | [INFO] [stderr] 383 | / match params.selected_nodes.len() { [INFO] [stderr] 384 | | 1 => { [INFO] [stderr] 385 | | let id = params.selected_nodes[0]; [INFO] [stderr] 386 | | if let Some(g_node) = params.gui_nodes.get(&id) { [INFO] [stderr] ... | [INFO] [stderr] 407 | | _ => {} [INFO] [stderr] 408 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 383 | if let 1 = params.selected_nodes.len() { [INFO] [stderr] 384 | let id = params.selected_nodes[0]; [INFO] [stderr] 385 | if let Some(g_node) = params.gui_nodes.get(&id) { [INFO] [stderr] 386 | let mut gn = g_node.borrow_mut(); [INFO] [stderr] 387 | let node_id = gn.node_id; [INFO] [stderr] 388 | if let Some(node) = params.node_map.get(&node_id) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: for loop over `gui_node::GuiNode::new(g_node.clone(), selected) [INFO] [stderr] .parent(ids.canvas) [INFO] [stderr] .w(140.0) [INFO] [stderr] .h(30.0) [INFO] [stderr] .set(id, ui)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/gui.rs:473:22 [INFO] [stderr] | [INFO] [stderr] 473 | for event in gui_node::GuiNode::new(g_node.clone(), selected) [INFO] [stderr] | ______________________^ [INFO] [stderr] 474 | | .parent(ids.canvas) [INFO] [stderr] 475 | | .w(140.0) [INFO] [stderr] 476 | | .h(30.0) [INFO] [stderr] 477 | | .set(id, ui) [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for event in gui_node::GuiNode::new(g_node.clone(), selected) [INFO] [stderr] .parent(ids.canvas) [INFO] [stderr] .w(140.0) [INFO] [stderr] .h(30.0) [INFO] [stderr] .set(id, ui)` with `if let Some(event) = gui_node::GuiNode::new(g_node.clone(), selected) [INFO] [stderr] .parent(ids.canvas) [INFO] [stderr] .w(140.0) [INFO] [stderr] .h(30.0) [INFO] [stderr] .set(id, ui)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/gui.rs:485:25 [INFO] [stderr] | [INFO] [stderr] 485 | let ref state = global.current; [INFO] [stderr] | ----^^^^^^^^^------------------ help: try: `let state = &global.current;` [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.rs:495:5 [INFO] [stderr] | [INFO] [stderr] 495 | / match params.current_connection { [INFO] [stderr] 496 | | Some(xy) => { [INFO] [stderr] 497 | | let point; [INFO] [stderr] 498 | | { [INFO] [stderr] ... | [INFO] [stderr] 507 | | None => {} [INFO] [stderr] 508 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 495 | if let Some(xy) = params.current_connection { [INFO] [stderr] 496 | let point; [INFO] [stderr] 497 | { [INFO] [stderr] 498 | let global = ui.global_input(); [INFO] [stderr] 499 | let ref state = global.current; [INFO] [stderr] 500 | point = [state.mouse.xy[0], state.mouse.xy[1]] [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/gui.rs:500:21 [INFO] [stderr] | [INFO] [stderr] 500 | let ref state = global.current; [INFO] [stderr] | ----^^^^^^^^^------------------ help: try: `let state = &global.current;` [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: the function has a cyclomatic complexity of 32 [INFO] [stderr] --> src/gui.rs:51:1 [INFO] [stderr] | [INFO] [stderr] 51 | / pub fn gui(ui: &mut conrod::Ui, mut params: &mut Params, width: u32, height: u32) { [INFO] [stderr] 52 | | let mut events_loop = glium::glutin::EventsLoop::new(); [INFO] [stderr] 53 | | [INFO] [stderr] 54 | | let window = glium::glutin::WindowBuilder::new() [INFO] [stderr] ... | [INFO] [stderr] 298 | | } [INFO] [stderr] 299 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:543:31 [INFO] [stderr] | [INFO] [stderr] 543 | for (_key, connection) in ¶ms.connections { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 543 | for connection in params.connections.values() { [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:571:31 [INFO] [stderr] | [INFO] [stderr] 571 | for (_key, connection) in connections { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 571 | for connection in connections.values() { [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:580:31 [INFO] [stderr] | [INFO] [stderr] 580 | for (_key, connection) in connections { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 580 | for connection in connections.values() { [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.rs:617:9 [INFO] [stderr] | [INFO] [stderr] 617 | / match params.selected_nodes.len() { [INFO] [stderr] 618 | | 1 => { [INFO] [stderr] 619 | | let index = params.selected_nodes[0]; [INFO] [stderr] 620 | | if let Some(g_node) = find_gui_node(index, ¶ms.gui_nodes) { [INFO] [stderr] ... | [INFO] [stderr] 682 | | _ => {} [INFO] [stderr] 683 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 617 | if let 1 = params.selected_nodes.len() { [INFO] [stderr] 618 | let index = params.selected_nodes[0]; [INFO] [stderr] 619 | if let Some(g_node) = find_gui_node(index, ¶ms.gui_nodes) { [INFO] [stderr] 620 | let b = g_node.borrow(); [INFO] [stderr] 621 | let connection_id = generator.next(); [INFO] [stderr] 622 | [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.rs:655:29 [INFO] [stderr] | [INFO] [stderr] 655 | / match (node, input_node, output_node) { [INFO] [stderr] 656 | | (Some(nn), Some(inode), Some(onode)) => { [INFO] [stderr] 657 | | commands.push(DisconnectCommand::new_ref(inode, b.node_id)); [INFO] [stderr] 658 | | commands.push(DisconnectCommand::new_ref(b.node_id, onode)); [INFO] [stderr] ... | [INFO] [stderr] 674 | | _ => {} [INFO] [stderr] 675 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 655 | if let (Some(nn), Some(inode), Some(onode)) = (node, input_node, output_node) { [INFO] [stderr] 656 | commands.push(DisconnectCommand::new_ref(inode, b.node_id)); [INFO] [stderr] 657 | commands.push(DisconnectCommand::new_ref(b.node_id, onode)); [INFO] [stderr] 658 | commands.push(CreateConnectionCommand::new_ref( [INFO] [stderr] 659 | generator.next(), [INFO] [stderr] 660 | inode, [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.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | / match event.clone() { [INFO] [stderr] 116 | | Input::Release(Button::Keyboard(Key::Escape)) => { [INFO] [stderr] 117 | | if params.display_menu != CreateState::None { [INFO] [stderr] 118 | | params.display_menu = CreateState::None; [INFO] [stderr] ... | [INFO] [stderr] 124 | | _ => {} [INFO] [stderr] 125 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 115 | if let Input::Release(Button::Keyboard(Key::Escape)) = event.clone() { [INFO] [stderr] 116 | if params.display_menu != CreateState::None { [INFO] [stderr] 117 | params.display_menu = CreateState::None; [INFO] [stderr] 118 | params.name_input = String::from(""); [INFO] [stderr] 119 | } else if params.command_line != CommandLine::None { [INFO] [stderr] 120 | params.command_line = CommandLine::None; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/gui.rs:196:33 [INFO] [stderr] | [INFO] [stderr] 196 | let ref state = global.current; [INFO] [stderr] | ----^^^^^^^^^------------------ help: try: `let state = &global.current;` [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: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui.rs:205:29 [INFO] [stderr] | [INFO] [stderr] 205 | / match params.selected_nodes.len() { [INFO] [stderr] 206 | | 1 => { [INFO] [stderr] 207 | | let selected_node = params.selected_nodes[0]; [INFO] [stderr] 208 | | if let Some(g_node) = params.gui_nodes.get(&selected_node) { [INFO] [stderr] ... | [INFO] [stderr] 222 | | _ => {} [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 205 | if let 1 = params.selected_nodes.len() { [INFO] [stderr] 206 | let selected_node = params.selected_nodes[0]; [INFO] [stderr] 207 | if let Some(g_node) = params.gui_nodes.get(&selected_node) { [INFO] [stderr] 208 | let gn = g_node.borrow(); [INFO] [stderr] 209 | if let Some(input_node_id) = [INFO] [stderr] 210 | find_input_node(gn.node_id, ¶ms.connections) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:213:67 [INFO] [stderr] | [INFO] [stderr] 213 | for (_key, g_node) in ¶ms.gui_nodes { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::for_kv_map)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 213 | for g_node in params.gui_nodes.values() { [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.rs:226:29 [INFO] [stderr] | [INFO] [stderr] 226 | / match params.selected_nodes.len() { [INFO] [stderr] 227 | | 1 => { [INFO] [stderr] 228 | | let selected_node = params.selected_nodes[0]; [INFO] [stderr] 229 | | if let Some(g_node) = params.gui_nodes.get(&selected_node) { [INFO] [stderr] ... | [INFO] [stderr] 243 | | _ => {} [INFO] [stderr] 244 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 226 | if let 1 = params.selected_nodes.len() { [INFO] [stderr] 227 | let selected_node = params.selected_nodes[0]; [INFO] [stderr] 228 | if let Some(g_node) = params.gui_nodes.get(&selected_node) { [INFO] [stderr] 229 | let gn = g_node.borrow(); [INFO] [stderr] 230 | if let Some(input_node_id) = [INFO] [stderr] 231 | find_output_node(gn.node_id, ¶ms.connections) [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:234:67 [INFO] [stderr] | [INFO] [stderr] 234 | for (_key, g_node) in ¶ms.gui_nodes { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 234 | for g_node in params.gui_nodes.values() { [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.rs:258:17 [INFO] [stderr] | [INFO] [stderr] 258 | / match event.clone() { [INFO] [stderr] 259 | | Input::Motion(Motion::MouseCursor { x, y }) => { [INFO] [stderr] 260 | | params.mouse_x = x as f64; [INFO] [stderr] 261 | | params.mouse_y = y as f64; [INFO] [stderr] 262 | | } [INFO] [stderr] 263 | | _ => {} [INFO] [stderr] 264 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 258 | if let Input::Motion(Motion::MouseCursor { x, y }) = event.clone() { [INFO] [stderr] 259 | params.mouse_x = x as f64; [INFO] [stderr] 260 | params.mouse_y = y as f64; [INFO] [stderr] 261 | } [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.rs:267:13 [INFO] [stderr] | [INFO] [stderr] 267 | / match event { [INFO] [stderr] 268 | | glium::glutin::Event::WindowEvent { event, .. } => match event { [INFO] [stderr] 269 | | // Break from the loop upon `Escape`. [INFO] [stderr] 270 | | glium::glutin::WindowEvent::Closed [INFO] [stderr] ... | [INFO] [stderr] 281 | | _ => (), [INFO] [stderr] 282 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 267 | if let glium::glutin::Event::WindowEvent { event, .. } = event { match event { [INFO] [stderr] 268 | // Break from the loop upon `Escape`. [INFO] [stderr] 269 | glium::glutin::WindowEvent::Closed [INFO] [stderr] 270 | | glium::glutin::WindowEvent::KeyboardInput { [INFO] [stderr] 271 | input: [INFO] [stderr] 272 | glium::glutin::KeyboardInput { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/gui.rs:311:5 [INFO] [stderr] | [INFO] [stderr] 311 | / match param_ui { [INFO] [stderr] 312 | | &NodeUI::None => { [INFO] [stderr] 313 | | let id = ids.walk().next(ids, &mut ui.widget_id_generator()); [INFO] [stderr] 314 | | widget::Text::new("Nothing") [INFO] [stderr] ... | [INFO] [stderr] 342 | | } [INFO] [stderr] 343 | | } [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] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/gui_node.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | self.style.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.style` [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] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 311 | match *param_ui { [INFO] [stderr] 312 | NodeUI::None => { [INFO] [stderr] 313 | let id = ids.walk().next(ids, &mut ui.widget_id_generator()); [INFO] [stderr] 314 | widget::Text::new("Nothing") [INFO] [stderr] 315 | .parent(parent_id) [INFO] [stderr] 316 | .middle_of(parent_id) [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_node.rs:135:60 [INFO] [stderr] | [INFO] [stderr] 135 | conrod::event::Widget::Press(press) => match press.button { [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 136 | | conrod::event::Button::Mouse(_, _) => { [INFO] [stderr] 137 | | if press [INFO] [stderr] 138 | | .modifiers [INFO] [stderr] ... | [INFO] [stderr] 147 | | _ => {} [INFO] [stderr] 148 | | }, [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 135 | conrod::event::Widget::Press(press) => if let conrod::event::Button::Mouse(_, _) = press.button { [INFO] [stderr] 136 | if press [INFO] [stderr] 137 | .modifiers [INFO] [stderr] 138 | .contains(conrod::input::keyboard::ModifierKey::CTRL) [INFO] [stderr] 139 | { [INFO] [stderr] 140 | data.mode = Mode::OutputConnection; [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_node.rs:149:64 [INFO] [stderr] | [INFO] [stderr] 149 | conrod::event::Widget::Release(release) => match release.button { [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 150 | | conrod::event::Button::Mouse(_, _) => { [INFO] [stderr] 151 | | if release [INFO] [stderr] 152 | | .modifiers [INFO] [stderr] ... | [INFO] [stderr] 161 | | _ => {} [INFO] [stderr] 162 | | }, [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 149 | conrod::event::Widget::Release(release) => if let conrod::event::Button::Mouse(_, _) = release.button { [INFO] [stderr] 150 | if release [INFO] [stderr] 151 | .modifiers [INFO] [stderr] 152 | .contains(conrod::input::keyboard::ModifierKey::CTRL) [INFO] [stderr] 153 | { [INFO] [stderr] 154 | output_event = Event::ConnectInput; [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.rs:334:21 [INFO] [stderr] | [INFO] [stderr] 334 | / match event { [INFO] [stderr] 335 | | widget::text_box::Event::Update(string) => { [INFO] [stderr] 336 | | nn.set_value(&data.field, NodeUIData::StringData(string)); [INFO] [stderr] 337 | | } [INFO] [stderr] 338 | | _ => {} [INFO] [stderr] 339 | | } [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 334 | if let widget::text_box::Event::Update(string) = event { [INFO] [stderr] 335 | nn.set_value(&data.field, NodeUIData::StringData(string)); [INFO] [stderr] 336 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: `ref` directly on a function argument is ignored. Consider using a reference type instead. [INFO] [stderr] --> src/gui.rs:347:5 [INFO] [stderr] | [INFO] [stderr] 347 | ref mut ui: conrod::UiCell, [INFO] [stderr] | ^^^^^^^^^^ [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: for loop over `widgets::Background::new() [INFO] [stderr] .parent(ids.node_panel) [INFO] [stderr] .set(ids.node_background, ui)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/gui.rs:371:18 [INFO] [stderr] | [INFO] [stderr] 371 | for event in widgets::Background::new() [INFO] [stderr] | __________________^ [INFO] [stderr] 372 | | .parent(ids.node_panel) [INFO] [stderr] 373 | | .set(ids.node_background, ui) [INFO] [stderr] | |_____________________________________^ [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::for_loop_over_option)] on by default [INFO] [stderr] = help: consider replacing `for event in widgets::Background::new() [INFO] [stderr] .parent(ids.node_panel) [INFO] [stderr] .set(ids.node_background, ui)` with `if let Some(event) = widgets::Background::new() [INFO] [stderr] .parent(ids.node_panel) [INFO] [stderr] .set(ids.node_background, ui)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [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.rs:375:9 [INFO] [stderr] | [INFO] [stderr] 375 | / match event { [INFO] [stderr] 376 | | widgets::Event::Click => { [INFO] [stderr] 377 | | params.selected_nodes = vec![]; [INFO] [stderr] 378 | | } [INFO] [stderr] 379 | | _ => {} [INFO] [stderr] 380 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 375 | if let widgets::Event::Click = event { [INFO] [stderr] 376 | params.selected_nodes = vec![]; [INFO] [stderr] 377 | } [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.rs:383:5 [INFO] [stderr] | [INFO] [stderr] 383 | / match params.selected_nodes.len() { [INFO] [stderr] 384 | | 1 => { [INFO] [stderr] 385 | | let id = params.selected_nodes[0]; [INFO] [stderr] 386 | | if let Some(g_node) = params.gui_nodes.get(&id) { [INFO] [stderr] ... | [INFO] [stderr] 407 | | _ => {} [INFO] [stderr] 408 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 383 | if let 1 = params.selected_nodes.len() { [INFO] [stderr] 384 | let id = params.selected_nodes[0]; [INFO] [stderr] 385 | if let Some(g_node) = params.gui_nodes.get(&id) { [INFO] [stderr] 386 | let mut gn = g_node.borrow_mut(); [INFO] [stderr] 387 | let node_id = gn.node_id; [INFO] [stderr] 388 | if let Some(node) = params.node_map.get(&node_id) { [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] error: for loop over `gui_node::GuiNode::new(g_node.clone(), selected) [INFO] [stderr] .parent(ids.canvas) [INFO] [stderr] .w(140.0) [INFO] [stderr] .h(30.0) [INFO] [stderr] .set(id, ui)`, which is an `Option`. This is more readably written as an `if let` statement. [INFO] [stderr] --> src/gui.rs:473:22 [INFO] [stderr] | [INFO] [stderr] 473 | for event in gui_node::GuiNode::new(g_node.clone(), selected) [INFO] [stderr] | ______________________^ [INFO] [stderr] 474 | | .parent(ids.canvas) [INFO] [stderr] 475 | | .w(140.0) [INFO] [stderr] 476 | | .h(30.0) [INFO] [stderr] 477 | | .set(id, ui) [INFO] [stderr] | |________________________^ [INFO] [stderr] | [INFO] [stderr] = help: consider replacing `for event in gui_node::GuiNode::new(g_node.clone(), selected) [INFO] [stderr] .parent(ids.canvas) [INFO] [stderr] .w(140.0) [INFO] [stderr] .h(30.0) [INFO] [stderr] .set(id, ui)` with `if let Some(event) = gui_node::GuiNode::new(g_node.clone(), selected) [INFO] [stderr] .parent(ids.canvas) [INFO] [stderr] .w(140.0) [INFO] [stderr] .h(30.0) [INFO] [stderr] .set(id, ui)` [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_loop_over_option [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/gui.rs:485:25 [INFO] [stderr] | [INFO] [stderr] 485 | let ref state = global.current; [INFO] [stderr] | ----^^^^^^^^^------------------ help: try: `let state = &global.current;` [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.rs:495:5 [INFO] [stderr] | [INFO] [stderr] 495 | / match params.current_connection { [INFO] [stderr] 496 | | Some(xy) => { [INFO] [stderr] 497 | | let point; [INFO] [stderr] 498 | | { [INFO] [stderr] ... | [INFO] [stderr] 507 | | None => {} [INFO] [stderr] 508 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 495 | if let Some(xy) = params.current_connection { [INFO] [stderr] 496 | let point; [INFO] [stderr] 497 | { [INFO] [stderr] 498 | let global = ui.global_input(); [INFO] [stderr] 499 | let ref state = global.current; [INFO] [stderr] 500 | point = [state.mouse.xy[0], state.mouse.xy[1]] [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/gui.rs:500:21 [INFO] [stderr] | [INFO] [stderr] 500 | let ref state = global.current; [INFO] [stderr] | ----^^^^^^^^^------------------ help: try: `let state = &global.current;` [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 want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:543:31 [INFO] [stderr] | [INFO] [stderr] 543 | for (_key, connection) in ¶ms.connections { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 543 | for connection in params.connections.values() { [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:571:31 [INFO] [stderr] | [INFO] [stderr] 571 | for (_key, connection) in connections { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 571 | for connection in connections.values() { [INFO] [stderr] | ^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/gui.rs:580:31 [INFO] [stderr] | [INFO] [stderr] 580 | for (_key, connection) in connections { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#for_kv_map [INFO] [stderr] help: use the corresponding method [INFO] [stderr] | [INFO] [stderr] 580 | for connection in connections.values() { [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.rs:617:9 [INFO] [stderr] | [INFO] [stderr] 617 | / match params.selected_nodes.len() { [INFO] [stderr] 618 | | 1 => { [INFO] [stderr] 619 | | let index = params.selected_nodes[0]; [INFO] [stderr] 620 | | if let Some(g_node) = find_gui_node(index, ¶ms.gui_nodes) { [INFO] [stderr] ... | [INFO] [stderr] 682 | | _ => {} [INFO] [stderr] 683 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 617 | if let 1 = params.selected_nodes.len() { [INFO] [stderr] 618 | let index = params.selected_nodes[0]; [INFO] [stderr] 619 | if let Some(g_node) = find_gui_node(index, ¶ms.gui_nodes) { [INFO] [stderr] 620 | let b = g_node.borrow(); [INFO] [stderr] 621 | let connection_id = generator.next(); [INFO] [stderr] 622 | [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.rs:655:29 [INFO] [stderr] | [INFO] [stderr] 655 | / match (node, input_node, output_node) { [INFO] [stderr] 656 | | (Some(nn), Some(inode), Some(onode)) => { [INFO] [stderr] 657 | | commands.push(DisconnectCommand::new_ref(inode, b.node_id)); [INFO] [stderr] 658 | | commands.push(DisconnectCommand::new_ref(b.node_id, onode)); [INFO] [stderr] ... | [INFO] [stderr] 674 | | _ => {} [INFO] [stderr] 675 | | } [INFO] [stderr] | |_____________________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 655 | if let (Some(nn), Some(inode), Some(onode)) = (node, input_node, output_node) { [INFO] [stderr] 656 | commands.push(DisconnectCommand::new_ref(inode, b.node_id)); [INFO] [stderr] 657 | commands.push(DisconnectCommand::new_ref(b.node_id, onode)); [INFO] [stderr] 658 | commands.push(CreateConnectionCommand::new_ref( [INFO] [stderr] 659 | generator.next(), [INFO] [stderr] 660 | inode, [INFO] [stderr] ... [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/commandline.rs:18:28 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(components: &Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [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] help: change this to [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(components: &[String]) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] help: change `components.clone()` to [INFO] [stderr] | [INFO] [stderr] 20 | components: components.to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [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/commandline.rs:24:32 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn new_ref(components: &Vec) -> Rc> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/commandline.rs:49:34 [INFO] [stderr] | [INFO] [stderr] 49 | Yaml::String(String::from(spec.type_)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `spec.type_` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/gui_node.rs:99:9 [INFO] [stderr] | [INFO] [stderr] 99 | self.style.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.style` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::clone_on_copy)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/gui_node.rs:135:60 [INFO] [stderr] | [INFO] [stderr] 135 | conrod::event::Widget::Press(press) => match press.button { [INFO] [stderr] | ____________________________________________________________^ [INFO] [stderr] 136 | | conrod::event::Button::Mouse(_, _) => { [INFO] [stderr] 137 | | if press [INFO] [stderr] 138 | | .modifiers [INFO] [stderr] ... | [INFO] [stderr] 147 | | _ => {} [INFO] [stderr] 148 | | }, [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 135 | conrod::event::Widget::Press(press) => if let conrod::event::Button::Mouse(_, _) = press.button { [INFO] [stderr] 136 | if press [INFO] [stderr] 137 | .modifiers [INFO] [stderr] 138 | .contains(conrod::input::keyboard::ModifierKey::CTRL) [INFO] [stderr] 139 | { [INFO] [stderr] 140 | data.mode = Mode::OutputConnection; [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_node.rs:149:64 [INFO] [stderr] | [INFO] [stderr] 149 | conrod::event::Widget::Release(release) => match release.button { [INFO] [stderr] | ________________________________________________________________^ [INFO] [stderr] 150 | | conrod::event::Button::Mouse(_, _) => { [INFO] [stderr] 151 | | if release [INFO] [stderr] 152 | | .modifiers [INFO] [stderr] ... | [INFO] [stderr] 161 | | _ => {} [INFO] [stderr] 162 | | }, [INFO] [stderr] | |_____________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 149 | conrod::event::Widget::Release(release) => if let conrod::event::Button::Mouse(_, _) = release.button { [INFO] [stderr] 150 | if release [INFO] [stderr] 151 | .modifiers [INFO] [stderr] 152 | .contains(conrod::input::keyboard::ModifierKey::CTRL) [INFO] [stderr] 153 | { [INFO] [stderr] 154 | output_event = Event::ConnectInput; [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/commandline.rs:141:18 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn run(text: &String, params: &mut Params, undo_stack: &mut UndoStack) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/commandline.rs:143:14 [INFO] [stderr] | [INFO] [stderr] 143 | .map(|str| String::from(str)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/commandline.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | / let mut command = None; [INFO] [stderr] 147 | | if components[0] == "w" { [INFO] [stderr] 148 | | command = Some(SaveCommand::new_ref(&components)); [INFO] [stderr] 149 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let command = if components[0] == "w" { Some(SaveCommand::new_ref(&components)) } else { None };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/widgets.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | self.style.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.style` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/widgets.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | / match event { [INFO] [stderr] 82 | | conrod::event::Widget::Click(click) => { [INFO] [stderr] 83 | | if click.button == conrod::input::state::mouse::Button::Left { [INFO] [stderr] 84 | | output_event = Event::Click; [INFO] [stderr] ... | [INFO] [stderr] 87 | | _ => {} [INFO] [stderr] 88 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 81 | if let conrod::event::Widget::Click(click) = event { [INFO] [stderr] 82 | if click.button == conrod::input::state::mouse::Button::Left { [INFO] [stderr] 83 | output_event = Event::Click; [INFO] [stderr] 84 | } [INFO] [stderr] 85 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:81:33 [INFO] [stderr] | [INFO] [stderr] 81 | fn get_value(&self, _field: &String) -> NodeUIData { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:85:37 [INFO] [stderr] | [INFO] [stderr] 85 | fn set_value(&mut self, _field: &String, _data: NodeUIData) {} [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:231:5 [INFO] [stderr] | [INFO] [stderr] 231 | / for node_id in end_nodes { [INFO] [stderr] 232 | | if let Some(node) = params.node_map.get(&node_id) { [INFO] [stderr] 233 | | build::pull(node.borrow_mut().deref_mut()); [INFO] [stderr] 234 | | } [INFO] [stderr] 235 | | break; [INFO] [stderr] 236 | | } [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] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:266:58 [INFO] [stderr] | [INFO] [stderr] 266 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(WIDTH)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:266:72 [INFO] [stderr] | [INFO] [stderr] 266 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(HEIGHT)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:280:58 [INFO] [stderr] | [INFO] [stderr] 280 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(WIDTH)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:280:72 [INFO] [stderr] | [INFO] [stderr] 280 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(HEIGHT)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:295:54 [INFO] [stderr] | [INFO] [stderr] 295 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(WIDTH)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:295:68 [INFO] [stderr] | [INFO] [stderr] 295 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(HEIGHT)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/commandline.rs:18:28 [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(components: &Vec) -> Self { [INFO] [stderr] | ^^^^^^^^^^^^ [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] help: change this to [INFO] [stderr] | [INFO] [stderr] 18 | pub fn new(components: &[String]) -> Self { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] help: change `components.clone()` to [INFO] [stderr] | [INFO] [stderr] 20 | components: components.to_owned(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [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/commandline.rs:24:32 [INFO] [stderr] | [INFO] [stderr] 24 | pub fn new_ref(components: &Vec) -> Rc> { [INFO] [stderr] | ^^^^^^^^^^^^ help: change this to: `&[String]` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: identical conversion [INFO] [stderr] --> src/commandline.rs:49:34 [INFO] [stderr] | [INFO] [stderr] 49 | Yaml::String(String::from(spec.type_)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: consider removing `String::from()`: `spec.type_` [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] error: Could not compile `mango`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/commandline.rs:141:18 [INFO] [stderr] | [INFO] [stderr] 141 | pub fn run(text: &String, params: &mut Params, undo_stack: &mut UndoStack) -> bool { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/commandline.rs:143:14 [INFO] [stderr] | [INFO] [stderr] 143 | .map(|str| String::from(str)) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `String::from` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: `if _ { .. } else { .. }` is an expression [INFO] [stderr] --> src/commandline.rs:146:9 [INFO] [stderr] | [INFO] [stderr] 146 | / let mut command = None; [INFO] [stderr] 147 | | if components[0] == "w" { [INFO] [stderr] 148 | | command = Some(SaveCommand::new_ref(&components)); [INFO] [stderr] 149 | | } [INFO] [stderr] | |_________^ help: it is more idiomatic to write: `let command = if components[0] == "w" { Some(SaveCommand::new_ref(&components)) } else { None };` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::useless_let_if_seq)] on by default [INFO] [stderr] = note: you might not need `mut` at all [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_let_if_seq [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/widgets.rs:59:9 [INFO] [stderr] | [INFO] [stderr] 59 | self.style.clone() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.style` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#clone_on_copy [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/widgets.rs:81:17 [INFO] [stderr] | [INFO] [stderr] 81 | / match event { [INFO] [stderr] 82 | | conrod::event::Widget::Click(click) => { [INFO] [stderr] 83 | | if click.button == conrod::input::state::mouse::Button::Left { [INFO] [stderr] 84 | | output_event = Event::Click; [INFO] [stderr] ... | [INFO] [stderr] 87 | | _ => {} [INFO] [stderr] 88 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 81 | if let conrod::event::Widget::Click(click) = event { [INFO] [stderr] 82 | if click.button == conrod::input::state::mouse::Button::Left { [INFO] [stderr] 83 | output_event = Event::Click; [INFO] [stderr] 84 | } [INFO] [stderr] 85 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:81:33 [INFO] [stderr] | [INFO] [stderr] 81 | fn get_value(&self, _field: &String) -> NodeUIData { [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: writing `&String` instead of `&str` involves a new object where a slice will do. [INFO] [stderr] --> src/main.rs:85:37 [INFO] [stderr] | [INFO] [stderr] 85 | fn set_value(&mut self, _field: &String, _data: NodeUIData) {} [INFO] [stderr] | ^^^^^^^ help: change this to: `&str` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] error: this loop never actually loops [INFO] [stderr] --> src/main.rs:231:5 [INFO] [stderr] | [INFO] [stderr] 231 | / for node_id in end_nodes { [INFO] [stderr] 232 | | if let Some(node) = params.node_map.get(&node_id) { [INFO] [stderr] 233 | | build::pull(node.borrow_mut().deref_mut()); [INFO] [stderr] 234 | | } [INFO] [stderr] 235 | | break; [INFO] [stderr] 236 | | } [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] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:266:58 [INFO] [stderr] | [INFO] [stderr] 266 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(WIDTH)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cast_lossless)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:266:72 [INFO] [stderr] | [INFO] [stderr] 266 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(HEIGHT)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:280:58 [INFO] [stderr] | [INFO] [stderr] 280 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(WIDTH)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:280:72 [INFO] [stderr] | [INFO] [stderr] 280 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(HEIGHT)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:295:54 [INFO] [stderr] | [INFO] [stderr] 295 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^ help: try: `f64::from(WIDTH)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] warning: casting u32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/main.rs:295:68 [INFO] [stderr] | [INFO] [stderr] 295 | let mut ui = conrod::UiBuilder::new([WIDTH as f64, HEIGHT as f64]).build(); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try: `f64::from(HEIGHT)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_lossless [INFO] [stderr] [INFO] [stderr] error: aborting due to 3 previous errors [INFO] [stderr] [INFO] [stderr] error: Could not compile `mango`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "a77c7eddfd63c9e8ef7df08f94aa31861f67d4c127975488cc13f4a5b2d1ed5b"` [INFO] running `"docker" "rm" "-f" "a77c7eddfd63c9e8ef7df08f94aa31861f67d4c127975488cc13f4a5b2d1ed5b"` [INFO] [stdout] a77c7eddfd63c9e8ef7df08f94aa31861f67d4c127975488cc13f4a5b2d1ed5b