[INFO] crate limn-layout 0.0.1 is already in cache [INFO] extracting crate limn-layout 0.0.1 into work/ex/clippy-test-run/sources/stable/reg/limn-layout/0.0.1 [INFO] extracting crate limn-layout 0.0.1 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/limn-layout/0.0.1 [INFO] validating manifest of limn-layout-0.0.1 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 limn-layout-0.0.1 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 limn-layout-0.0.1 [INFO] finished frobbing limn-layout-0.0.1 [INFO] frobbed toml for limn-layout-0.0.1 written to work/ex/clippy-test-run/sources/stable/reg/limn-layout/0.0.1/Cargo.toml [INFO] started frobbing limn-layout-0.0.1 [INFO] finished frobbing limn-layout-0.0.1 [INFO] frobbed toml for limn-layout-0.0.1 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/limn-layout/0.0.1/Cargo.toml [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "generate-lockfile" "--manifest-path" "Cargo.toml" "-Zno-index-update"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] running `"/mnt/big/crater/work/local/cargo-home/bin/cargo" "+stable" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] linting limn-layout-0.0.1 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-1/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/limn-layout/0.0.1:/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] 25ddee7305bb53d1e31cc59a83927ebdc80ff5542c4d44ccdfdab325bbe222d5 [INFO] running `"docker" "start" "-a" "25ddee7305bb53d1e31cc59a83927ebdc80ff5542c4d44ccdfdab325bbe222d5"` [INFO] [stderr] Checking euclid v0.15.6 [INFO] [stderr] Checking limn-layout v0.0.1 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/lib.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | vars: vars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vars` [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/lib.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/lib.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | 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/lib.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | new_constraints: new_constraints, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_constraints` [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/lib.rs:328:13 [INFO] [stderr] | [INFO] [stderr] 328 | builder: builder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [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/lib.rs:329:13 [INFO] [stderr] | [INFO] [stderr] 329 | var: var, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `var` [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/linear_layout.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | orientation: orientation, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `orientation` [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/linear_layout.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | settings: settings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `settings` [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/linear_layout.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/linear_layout.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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/linear_layout.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | space: space, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `space` [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/linear_layout.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/linear_layout.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | end_constraint: end_constraint, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_constraint` [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/grid_layout.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | num_columns: num_columns, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_columns` [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/grid_layout.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | columns: columns, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `columns` [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/lib.rs:177:13 [INFO] [stderr] | [INFO] [stderr] 177 | vars: vars, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `vars` [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/lib.rs:178:13 [INFO] [stderr] | [INFO] [stderr] 178 | name: name, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `name` [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/lib.rs:179:13 [INFO] [stderr] | [INFO] [stderr] 179 | 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/lib.rs:185:13 [INFO] [stderr] | [INFO] [stderr] 185 | new_constraints: new_constraints, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `new_constraints` [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/lib.rs:328:13 [INFO] [stderr] | [INFO] [stderr] 328 | builder: builder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `builder` [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/lib.rs:329:13 [INFO] [stderr] | [INFO] [stderr] 329 | var: var, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `var` [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/linear_layout.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | orientation: orientation, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `orientation` [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/linear_layout.rs:137:13 [INFO] [stderr] | [INFO] [stderr] 137 | settings: settings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `settings` [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/linear_layout.rs:138:13 [INFO] [stderr] | [INFO] [stderr] 138 | start: start, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `start` [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/linear_layout.rs:139:13 [INFO] [stderr] | [INFO] [stderr] 139 | end: end, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `end` [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/linear_layout.rs:140:13 [INFO] [stderr] | [INFO] [stderr] 140 | space: space, [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `space` [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/linear_layout.rs:141:13 [INFO] [stderr] | [INFO] [stderr] 141 | size: size, [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `size` [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/linear_layout.rs:184:13 [INFO] [stderr] | [INFO] [stderr] 184 | end_constraint: end_constraint, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `end_constraint` [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/grid_layout.rs:43:13 [INFO] [stderr] | [INFO] [stderr] 43 | num_columns: num_columns, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `num_columns` [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/grid_layout.rs:46:13 [INFO] [stderr] | [INFO] [stderr] 46 | columns: columns, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `columns` [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: operator precedence can trip the unwary [INFO] [stderr] --> src/lib.rs:172:32 [INFO] [stderr] | [INFO] [stderr] 172 | new_constraints.insert(vars.right - vars.left| EQ(REQUIRED) | vars.width); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(vars.right - vars.left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/lib.rs:173:32 [INFO] [stderr] | [INFO] [stderr] 173 | new_constraints.insert(vars.bottom - vars.top | EQ(REQUIRED) | vars.height); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(vars.bottom - vars.top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:305:23 [INFO] [stderr] | [INFO] [stderr] 305 | vec![ aspect_ratio * widget.width | EQ(strength) | widget.height ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(aspect_ratio * widget.width) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:327:21 [INFO] [stderr] | [INFO] [stderr] 327 | widget.left - other.left | EQ(REQUIRED) | other.right - widget.right, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `widget.left - other.left | EQ(REQUIRED) | (other.right - widget.right)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:327:21 [INFO] [stderr] | [INFO] [stderr] 327 | widget.left - other.left | EQ(REQUIRED) | other.right - widget.right, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - other.left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:328:21 [INFO] [stderr] | [INFO] [stderr] 328 | widget.top - other.top | EQ(REQUIRED) | other.bottom - widget.bottom, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `widget.top - other.top | EQ(REQUIRED) | (other.bottom - widget.bottom)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:328:21 [INFO] [stderr] | [INFO] [stderr] 328 | widget.top - other.top | EQ(REQUIRED) | other.bottom - widget.bottom, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - other.top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:332:23 [INFO] [stderr] | [INFO] [stderr] 332 | vec![ widget.left - left | EQ(REQUIRED) | right - widget.right ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `widget.left - left | EQ(REQUIRED) | (right - widget.right)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:332:23 [INFO] [stderr] | [INFO] [stderr] 332 | vec![ widget.left - left | EQ(REQUIRED) | right - widget.right ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:335:23 [INFO] [stderr] | [INFO] [stderr] 335 | vec![ widget.top - top | EQ(REQUIRED) | bottom - widget.bottom ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `widget.top - top | EQ(REQUIRED) | (bottom - widget.bottom)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:335:23 [INFO] [stderr] | [INFO] [stderr] 335 | vec![ widget.top - top | EQ(REQUIRED) | bottom - widget.bottom ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:347:23 [INFO] [stderr] | [INFO] [stderr] 347 | vec![ widget.top - top | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - top) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:350:23 [INFO] [stderr] | [INFO] [stderr] 350 | vec![ bottom - widget.bottom | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(bottom - widget.bottom) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:353:23 [INFO] [stderr] | [INFO] [stderr] 353 | vec![ widget.left - left | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - left) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:356:23 [INFO] [stderr] | [INFO] [stderr] 356 | vec![ right - widget.right | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(right - widget.right) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:359:23 [INFO] [stderr] | [INFO] [stderr] 359 | vec![ top - widget.bottom | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(top - widget.bottom) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:362:23 [INFO] [stderr] | [INFO] [stderr] 362 | vec![ widget.top - bottom | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - bottom) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:365:23 [INFO] [stderr] | [INFO] [stderr] 365 | vec![ left - widget.right | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(left - widget.right) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:368:23 [INFO] [stderr] | [INFO] [stderr] 368 | vec![ widget.left - right | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - right) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:371:23 [INFO] [stderr] | [INFO] [stderr] 371 | vec![ top - widget.bottom | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(top - widget.bottom) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:374:23 [INFO] [stderr] | [INFO] [stderr] 374 | vec![ widget.top - bottom | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - bottom) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:377:23 [INFO] [stderr] | [INFO] [stderr] 377 | vec![ left - widget.right | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(left - widget.right) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:380:23 [INFO] [stderr] | [INFO] [stderr] 380 | vec![ widget.left - right | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - right) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:383:23 [INFO] [stderr] | [INFO] [stderr] 383 | vec![ widget.left - left | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - left) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:386:23 [INFO] [stderr] | [INFO] [stderr] 386 | vec![ widget.top - top | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - top) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:389:23 [INFO] [stderr] | [INFO] [stderr] 389 | vec![ right - widget.right | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(right - widget.right) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:392:23 [INFO] [stderr] | [INFO] [stderr] 392 | vec![ bottom - widget.bottom | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(bottom - widget.bottom) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:396:21 [INFO] [stderr] | [INFO] [stderr] 396 | widget.left - other.left | GE(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - other.left) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:397:21 [INFO] [stderr] | [INFO] [stderr] 397 | widget.top - other.top | GE(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - other.top) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:398:21 [INFO] [stderr] | [INFO] [stderr] 398 | other.right - widget.right | GE(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(other.right - widget.right) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:399:21 [INFO] [stderr] | [INFO] [stderr] 399 | other.bottom - widget.bottom | GE(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(other.bottom - widget.bottom) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:404:21 [INFO] [stderr] | [INFO] [stderr] 404 | widget.left - other.left | EQ(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - other.left) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:405:21 [INFO] [stderr] | [INFO] [stderr] 405 | widget.top - other.top | EQ(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - other.top) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:406:21 [INFO] [stderr] | [INFO] [stderr] 406 | other.right - widget.right | EQ(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(other.right - widget.right) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:407:21 [INFO] [stderr] | [INFO] [stderr] 407 | other.bottom - widget.bottom | EQ(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(other.bottom - widget.bottom) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:411:23 [INFO] [stderr] | [INFO] [stderr] 411 | vec![ width - widget.width | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(width - widget.width) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:414:23 [INFO] [stderr] | [INFO] [stderr] 414 | vec![ height - widget.height | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(height - widget.height) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/linear_layout.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | start | EQ(REQUIRED) | parent_start + space, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `start | EQ(REQUIRED) | (parent_start + space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/linear_layout.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | end | EQ(REQUIRED) | parent_end - space, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `end | EQ(REQUIRED) | (parent_end - space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/linear_layout.rs:161:16 [INFO] [stderr] | [INFO] [stderr] 161 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 162 | | if self.settings.spacing != Spacing::Start { [INFO] [stderr] 163 | | parent.add(child_start | EQ(REQUIRED) | self.start); [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [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] 161 | } else if self.settings.spacing != Spacing::Start { [INFO] [stderr] 162 | parent.add(child_start | EQ(REQUIRED) | self.start); [INFO] [stderr] 163 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/linear_layout.rs:159:24 [INFO] [stderr] | [INFO] [stderr] 159 | parent.add(child_start | EQ(REQUIRED) | last_widget.end + self.space); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `child_start | EQ(REQUIRED) | (last_widget.end + self.space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/linear_layout.rs:275:24 [INFO] [stderr] | [INFO] [stderr] 275 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 276 | | if self.settings.spacing != Spacing::End { [INFO] [stderr] 277 | | let end_constraint = prev.end | EQ(REQUIRED) | self.end; [INFO] [stderr] 278 | | parent.add(end_constraint.clone()); [INFO] [stderr] 279 | | prev.end_constraint = Some(end_constraint); [INFO] [stderr] 280 | | } [INFO] [stderr] 281 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 275 | } else if self.settings.spacing != Spacing::End { [INFO] [stderr] 276 | let end_constraint = prev.end | EQ(REQUIRED) | self.end; [INFO] [stderr] 277 | parent.add(end_constraint.clone()); [INFO] [stderr] 278 | prev.end_constraint = Some(end_constraint); [INFO] [stderr] 279 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/linear_layout.rs:274:32 [INFO] [stderr] | [INFO] [stderr] 274 | parent.add(next_start | EQ(REQUIRED) | prev.end + self.space); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `next_start | EQ(REQUIRED) | (prev.end + self.space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/grid_layout.rs:25:17 [INFO] [stderr] | [INFO] [stderr] 25 | column.right - column.left | EQ(REQUIRED) | column.width, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(column.right - column.left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/grid_layout.rs:26:17 [INFO] [stderr] | [INFO] [stderr] 26 | column.bottom - column.top | EQ(REQUIRED) | column.height, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(column.bottom - column.top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/grid_layout.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | row.right - row.left | EQ(REQUIRED) | row.width, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(row.right - row.left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/grid_layout.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | row.bottom - row.top | EQ(REQUIRED) | row.height, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(row.bottom - row.top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/lib.rs:172:32 [INFO] [stderr] | [INFO] [stderr] 172 | new_constraints.insert(vars.right - vars.left| EQ(REQUIRED) | vars.width); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(vars.right - vars.left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::precedence)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/lib.rs:173:32 [INFO] [stderr] | [INFO] [stderr] 173 | new_constraints.insert(vars.bottom - vars.top | EQ(REQUIRED) | vars.height); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(vars.bottom - vars.top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:305:23 [INFO] [stderr] | [INFO] [stderr] 305 | vec![ aspect_ratio * widget.width | EQ(strength) | widget.height ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(aspect_ratio * widget.width) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:327:21 [INFO] [stderr] | [INFO] [stderr] 327 | widget.left - other.left | EQ(REQUIRED) | other.right - widget.right, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `widget.left - other.left | EQ(REQUIRED) | (other.right - widget.right)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:327:21 [INFO] [stderr] | [INFO] [stderr] 327 | widget.left - other.left | EQ(REQUIRED) | other.right - widget.right, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - other.left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:328:21 [INFO] [stderr] | [INFO] [stderr] 328 | widget.top - other.top | EQ(REQUIRED) | other.bottom - widget.bottom, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `widget.top - other.top | EQ(REQUIRED) | (other.bottom - widget.bottom)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:328:21 [INFO] [stderr] | [INFO] [stderr] 328 | widget.top - other.top | EQ(REQUIRED) | other.bottom - widget.bottom, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - other.top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:332:23 [INFO] [stderr] | [INFO] [stderr] 332 | vec![ widget.left - left | EQ(REQUIRED) | right - widget.right ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `widget.left - left | EQ(REQUIRED) | (right - widget.right)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:332:23 [INFO] [stderr] | [INFO] [stderr] 332 | vec![ widget.left - left | EQ(REQUIRED) | right - widget.right ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:335:23 [INFO] [stderr] | [INFO] [stderr] 335 | vec![ widget.top - top | EQ(REQUIRED) | bottom - widget.bottom ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `widget.top - top | EQ(REQUIRED) | (bottom - widget.bottom)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:335:23 [INFO] [stderr] | [INFO] [stderr] 335 | vec![ widget.top - top | EQ(REQUIRED) | bottom - widget.bottom ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:347:23 [INFO] [stderr] | [INFO] [stderr] 347 | vec![ widget.top - top | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - top) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:350:23 [INFO] [stderr] | [INFO] [stderr] 350 | vec![ bottom - widget.bottom | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(bottom - widget.bottom) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:353:23 [INFO] [stderr] | [INFO] [stderr] 353 | vec![ widget.left - left | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - left) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:356:23 [INFO] [stderr] | [INFO] [stderr] 356 | vec![ right - widget.right | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(right - widget.right) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:359:23 [INFO] [stderr] | [INFO] [stderr] 359 | vec![ top - widget.bottom | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(top - widget.bottom) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:362:23 [INFO] [stderr] | [INFO] [stderr] 362 | vec![ widget.top - bottom | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - bottom) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:365:23 [INFO] [stderr] | [INFO] [stderr] 365 | vec![ left - widget.right | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(left - widget.right) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:368:23 [INFO] [stderr] | [INFO] [stderr] 368 | vec![ widget.left - right | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - right) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:371:23 [INFO] [stderr] | [INFO] [stderr] 371 | vec![ top - widget.bottom | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(top - widget.bottom) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:374:23 [INFO] [stderr] | [INFO] [stderr] 374 | vec![ widget.top - bottom | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - bottom) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:377:23 [INFO] [stderr] | [INFO] [stderr] 377 | vec![ left - widget.right | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(left - widget.right) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:380:23 [INFO] [stderr] | [INFO] [stderr] 380 | vec![ widget.left - right | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - right) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:383:23 [INFO] [stderr] | [INFO] [stderr] 383 | vec![ widget.left - left | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - left) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:386:23 [INFO] [stderr] | [INFO] [stderr] 386 | vec![ widget.top - top | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - top) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:389:23 [INFO] [stderr] | [INFO] [stderr] 389 | vec![ right - widget.right | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(right - widget.right) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:392:23 [INFO] [stderr] | [INFO] [stderr] 392 | vec![ bottom - widget.bottom | GE(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(bottom - widget.bottom) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:396:21 [INFO] [stderr] | [INFO] [stderr] 396 | widget.left - other.left | GE(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - other.left) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:397:21 [INFO] [stderr] | [INFO] [stderr] 397 | widget.top - other.top | GE(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - other.top) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:398:21 [INFO] [stderr] | [INFO] [stderr] 398 | other.right - widget.right | GE(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(other.right - widget.right) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:399:21 [INFO] [stderr] | [INFO] [stderr] 399 | other.bottom - widget.bottom | GE(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(other.bottom - widget.bottom) | GE(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:404:21 [INFO] [stderr] | [INFO] [stderr] 404 | widget.left - other.left | EQ(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.left - other.left) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:405:21 [INFO] [stderr] | [INFO] [stderr] 405 | widget.top - other.top | EQ(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(widget.top - other.top) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:406:21 [INFO] [stderr] | [INFO] [stderr] 406 | other.right - widget.right | EQ(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(other.right - widget.right) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:407:21 [INFO] [stderr] | [INFO] [stderr] 407 | other.bottom - widget.bottom | EQ(strength) | padding, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(other.bottom - widget.bottom) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:411:23 [INFO] [stderr] | [INFO] [stderr] 411 | vec![ width - widget.width | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(width - widget.width) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/constraint.rs:414:23 [INFO] [stderr] | [INFO] [stderr] 414 | vec![ height - widget.height | EQ(strength) | padding ] [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(height - widget.height) | EQ(strength)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/linear_layout.rs:115:21 [INFO] [stderr] | [INFO] [stderr] 115 | start | EQ(REQUIRED) | parent_start + space, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `start | EQ(REQUIRED) | (parent_start + space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/linear_layout.rs:116:21 [INFO] [stderr] | [INFO] [stderr] 116 | end | EQ(REQUIRED) | parent_end - space, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `end | EQ(REQUIRED) | (parent_end - space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/linear_layout.rs:161:16 [INFO] [stderr] | [INFO] [stderr] 161 | } else { [INFO] [stderr] | ________________^ [INFO] [stderr] 162 | | if self.settings.spacing != Spacing::Start { [INFO] [stderr] 163 | | parent.add(child_start | EQ(REQUIRED) | self.start); [INFO] [stderr] 164 | | } [INFO] [stderr] 165 | | } [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] 161 | } else if self.settings.spacing != Spacing::Start { [INFO] [stderr] 162 | parent.add(child_start | EQ(REQUIRED) | self.start); [INFO] [stderr] 163 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/linear_layout.rs:159:24 [INFO] [stderr] | [INFO] [stderr] 159 | parent.add(child_start | EQ(REQUIRED) | last_widget.end + self.space); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `child_start | EQ(REQUIRED) | (last_widget.end + self.space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: this `else { if .. }` block can be collapsed [INFO] [stderr] --> src/linear_layout.rs:275:24 [INFO] [stderr] | [INFO] [stderr] 275 | } else { [INFO] [stderr] | ________________________^ [INFO] [stderr] 276 | | if self.settings.spacing != Spacing::End { [INFO] [stderr] 277 | | let end_constraint = prev.end | EQ(REQUIRED) | self.end; [INFO] [stderr] 278 | | parent.add(end_constraint.clone()); [INFO] [stderr] 279 | | prev.end_constraint = Some(end_constraint); [INFO] [stderr] 280 | | } [INFO] [stderr] 281 | | } [INFO] [stderr] | |_________________^ [INFO] [stderr] | [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] 275 | } else if self.settings.spacing != Spacing::End { [INFO] [stderr] 276 | let end_constraint = prev.end | EQ(REQUIRED) | self.end; [INFO] [stderr] 277 | parent.add(end_constraint.clone()); [INFO] [stderr] 278 | prev.end_constraint = Some(end_constraint); [INFO] [stderr] 279 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/linear_layout.rs:274:32 [INFO] [stderr] | [INFO] [stderr] 274 | parent.add(next_start | EQ(REQUIRED) | prev.end + self.space); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `next_start | EQ(REQUIRED) | (prev.end + self.space)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/grid_layout.rs:25:17 [INFO] [stderr] | [INFO] [stderr] 25 | column.right - column.left | EQ(REQUIRED) | column.width, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(column.right - column.left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/grid_layout.rs:26:17 [INFO] [stderr] | [INFO] [stderr] 26 | column.bottom - column.top | EQ(REQUIRED) | column.height, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(column.bottom - column.top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/grid_layout.rs:58:17 [INFO] [stderr] | [INFO] [stderr] 58 | row.right - row.left | EQ(REQUIRED) | row.width, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(row.right - row.left) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: operator precedence can trip the unwary [INFO] [stderr] --> src/grid_layout.rs:59:17 [INFO] [stderr] | [INFO] [stderr] 59 | row.bottom - row.top | EQ(REQUIRED) | row.height, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider parenthesizing your expression: `(row.bottom - row.top) | EQ(REQUIRED)` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#precedence [INFO] [stderr] [INFO] [stderr] warning: you should consider adding a `Default` implementation for `LayoutVars` [INFO] [stderr] --> src/lib.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn new() -> Self { [INFO] [stderr] 80 | | LayoutVars { [INFO] [stderr] 81 | | left: Variable::new(), [INFO] [stderr] 82 | | top: Variable::new(), [INFO] [stderr] ... | [INFO] [stderr] 87 | | } [INFO] [stderr] 88 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | impl Default for LayoutVars { [INFO] [stderr] 79 | fn default() -> Self { [INFO] [stderr] 80 | Self::new() [INFO] [stderr] 81 | } [INFO] [stderr] 82 | } [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/lib.rs:251:51 [INFO] [stderr] | [INFO] [stderr] 251 | pub fn has_constraint(&mut self, constraints: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Constraint]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | for ref constraint in &removed_constraints { [INFO] [stderr] | ^^^^^^^^^^^^^^ -------------------- help: try: `let constraint = &&removed_constraints;` [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: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:339:25 [INFO] [stderr] | [INFO] [stderr] 339 | self.val = Some(val as f64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(val)` [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: you should consider adding a `Default` implementation for `solver::LimnSolver` [INFO] [stderr] --> src/solver.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / pub fn new() -> Self { [INFO] [stderr] 19 | | LimnSolver { [INFO] [stderr] 20 | | solver: cassowary::Solver::new(), [INFO] [stderr] 21 | | strict: false, [INFO] [stderr] 22 | | layouts: LayoutManager::new(), [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 17 | impl Default for solver::LimnSolver { [INFO] [stderr] 18 | fn default() -> Self { [INFO] [stderr] 19 | Self::new() [INFO] [stderr] 20 | } [INFO] [stderr] 21 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver.rs:111:20 [INFO] [stderr] | [INFO] [stderr] 111 | if layout.hidden_constraints.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `layout.hidden_constraints.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solver.rs:162:44 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn has_edit_variable(&mut self, v: &Variable) -> bool { [INFO] [stderr] | ^^^^^^^^^ help: consider passing by value instead: `Variable` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/solver.rs:202:34 [INFO] [stderr] | [INFO] [stderr] 202 | for (_, edit_var) in &self.layouts.layouts[&layout].edit_vars { [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] 202 | for edit_var in self.layouts.layouts[&layout].edit_vars.values() { [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver.rs:219:16 [INFO] [stderr] | [INFO] [stderr] 219 | if new_constraints.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `new_constraints.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `solver::LayoutManager` [INFO] [stderr] --> src/solver.rs:290:5 [INFO] [stderr] | [INFO] [stderr] 290 | / pub fn new() -> Self { [INFO] [stderr] 291 | | LayoutManager { [INFO] [stderr] 292 | | root: 0, [INFO] [stderr] 293 | | var_ids: HashMap::new(), [INFO] [stderr] ... | [INFO] [stderr] 298 | | } [INFO] [stderr] 299 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 278 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/solver.rs:308:19 [INFO] [stderr] | [INFO] [stderr] 308 | vars: layout.vars.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `layout.vars` [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/solver.rs:400:40 [INFO] [stderr] | [INFO] [stderr] 400 | self.layouts[&id].name.clone().unwrap_or("unknown".to_owned()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "unknown".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solver.rs:412:9 [INFO] [stderr] | [INFO] [stderr] 412 | layout.vars.array().iter().chain(layout.associated_vars.keys()).map(|var| *var).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `layout.vars.array().iter().chain(layout.associated_vars.keys()).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/solver.rs:418:47 [INFO] [stderr] | [INFO] [stderr] 418 | let layout_name = layout.name.clone().unwrap_or("unknown".to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "unknown".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver.rs:441:27 [INFO] [stderr] | [INFO] [stderr] 441 | let coef = if coef == 1.0 { "".to_owned() } else { coef.to_string() }; [INFO] [stderr] | ^^^^^^^^^^^ help: consider comparing them within some error: `(coef - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver.rs:441:27 [INFO] [stderr] | [INFO] [stderr] 441 | let coef = if coef == 1.0 { "".to_owned() } else { coef.to_string() }; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver.rs:451:12 [INFO] [stderr] | [INFO] [stderr] 451 | if pos_terms.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `pos_terms.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver.rs:462:12 [INFO] [stderr] | [INFO] [stderr] 462 | if neg_terms.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `neg_terms.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:43:30 [INFO] [stderr] | [INFO] [stderr] 43 | WidgetConstraint::Center(widget.layout_ref().clone()).builder(REQUIRED) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `widget.layout_ref()` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:124:33 [INFO] [stderr] | [INFO] [stderr] 124 | PaddableConstraint::BoundBy(outer.clone()).builder(REQUIRED) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `outer` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:129:37 [INFO] [stderr] | [INFO] [stderr] 129 | PaddableConstraint::MatchLayout(widget.clone()).builder(REQUIRED) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `widget` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/constraint.rs:238:13 [INFO] [stderr] | [INFO] [stderr] 238 | let ref terms = self.expr().terms; [INFO] [stderr] | ----^^^^^^^^^--------------------- help: try: `let terms = &self.expr().terms;` [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 should consider adding a `Default` implementation for `LayoutVars` [INFO] [stderr] --> src/lib.rs:79:5 [INFO] [stderr] | [INFO] [stderr] 79 | / pub fn new() -> Self { [INFO] [stderr] 80 | | LayoutVars { [INFO] [stderr] 81 | | left: Variable::new(), [INFO] [stderr] 82 | | top: Variable::new(), [INFO] [stderr] ... | [INFO] [stderr] 87 | | } [INFO] [stderr] 88 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 78 | impl Default for LayoutVars { [INFO] [stderr] 79 | fn default() -> Self { [INFO] [stderr] 80 | Self::new() [INFO] [stderr] 81 | } [INFO] [stderr] 82 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:279:15 [INFO] [stderr] | [INFO] [stderr] 279 | match self.constraint.clone() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.constraint` [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: writing `&Vec<_>` instead of `&[_]` involves one more reference and cannot be used with non-Vec-based slices. [INFO] [stderr] --> src/lib.rs:251:51 [INFO] [stderr] | [INFO] [stderr] 251 | pub fn has_constraint(&mut self, constraints: &Vec) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: change this to: `&[Constraint]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::ptr_arg)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg [INFO] [stderr] [INFO] [stderr] warning: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/lib.rs:268:13 [INFO] [stderr] | [INFO] [stderr] 268 | for ref constraint in &removed_constraints { [INFO] [stderr] | ^^^^^^^^^^^^^^ -------------------- help: try: `let constraint = &&removed_constraints;` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:345:15 [INFO] [stderr] | [INFO] [stderr] 345 | match self.constraint.clone() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.constraint` [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: casting f32 to f64 may become silently lossy if types change [INFO] [stderr] --> src/lib.rs:339:25 [INFO] [stderr] | [INFO] [stderr] 339 | self.val = Some(val as f64); [INFO] [stderr] | ^^^^^^^^^^ help: try: `f64::from(val)` [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: you should consider adding a `Default` implementation for `solver::LimnSolver` [INFO] [stderr] --> src/solver.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 18 | / pub fn new() -> Self { [INFO] [stderr] 19 | | LimnSolver { [INFO] [stderr] 20 | | solver: cassowary::Solver::new(), [INFO] [stderr] 21 | | strict: false, [INFO] [stderr] 22 | | layouts: LayoutManager::new(), [INFO] [stderr] 23 | | } [INFO] [stderr] 24 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 17 | impl Default for solver::LimnSolver { [INFO] [stderr] 18 | fn default() -> Self { [INFO] [stderr] 19 | Self::new() [INFO] [stderr] 20 | } [INFO] [stderr] 21 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver.rs:111:20 [INFO] [stderr] | [INFO] [stderr] 111 | if layout.hidden_constraints.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `layout.hidden_constraints.is_empty()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::len_zero)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/solver.rs:162:44 [INFO] [stderr] | [INFO] [stderr] 162 | pub fn has_edit_variable(&mut self, v: &Variable) -> bool { [INFO] [stderr] | ^^^^^^^^^ help: consider passing by value instead: `Variable` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to want to iterate on a map's values [INFO] [stderr] --> src/solver.rs:202:34 [INFO] [stderr] | [INFO] [stderr] 202 | for (_, edit_var) in &self.layouts.layouts[&layout].edit_vars { [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] 202 | for edit_var in self.layouts.layouts[&layout].edit_vars.values() { [INFO] [stderr] | ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver.rs:219:16 [INFO] [stderr] | [INFO] [stderr] 219 | if new_constraints.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `new_constraints.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `solver::LayoutManager` [INFO] [stderr] --> src/solver.rs:290:5 [INFO] [stderr] | [INFO] [stderr] 290 | / pub fn new() -> Self { [INFO] [stderr] 291 | | LayoutManager { [INFO] [stderr] 292 | | root: 0, [INFO] [stderr] 293 | | var_ids: HashMap::new(), [INFO] [stderr] ... | [INFO] [stderr] 298 | | } [INFO] [stderr] 299 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::new_without_default_derive)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default_derive [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 278 | #[derive(Default)] [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/solver.rs:308:19 [INFO] [stderr] | [INFO] [stderr] 308 | vars: layout.vars.clone(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `layout.vars` [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: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/solver.rs:400:40 [INFO] [stderr] | [INFO] [stderr] 400 | self.layouts[&id].name.clone().unwrap_or("unknown".to_owned()) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "unknown".to_owned())` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::or_fun_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/solver.rs:412:9 [INFO] [stderr] | [INFO] [stderr] 412 | layout.vars.array().iter().chain(layout.associated_vars.keys()).map(|var| *var).collect() [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `layout.vars.array().iter().chain(layout.associated_vars.keys()).cloned()` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::map_clone)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: use of `unwrap_or` followed by a function call [INFO] [stderr] --> src/solver.rs:418:47 [INFO] [stderr] | [INFO] [stderr] 418 | let layout_name = layout.name.clone().unwrap_or("unknown".to_owned()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `unwrap_or_else(|| "unknown".to_owned())` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#or_fun_call [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/grid_layout.rs:53:47 [INFO] [stderr] | [INFO] [stderr] 53 | if self.column == self.num_columns || self.rows.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.rows.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/grid_layout.rs:78:54 [INFO] [stderr] | [INFO] [stderr] 78 | let (row, col) = (self.rows.last().unwrap(), self.columns.get(self.column).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.columns[self.column]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: strict comparison of f32 or f64 [INFO] [stderr] --> src/solver.rs:441:27 [INFO] [stderr] | [INFO] [stderr] 441 | let coef = if coef == 1.0 { "".to_owned() } else { coef.to_string() }; [INFO] [stderr] | ^^^^^^^^^^^ help: consider comparing them within some error: `(coef - 1.0).abs() < error` [INFO] [stderr] | [INFO] [stderr] = note: #[deny(clippy::float_cmp)] on by default [INFO] [stderr] note: std::f32::EPSILON and std::f64::EPSILON are available. [INFO] [stderr] --> src/solver.rs:441:27 [INFO] [stderr] | [INFO] [stderr] 441 | let coef = if coef == 1.0 { "".to_owned() } else { coef.to_string() }; [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#float_cmp [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver.rs:451:12 [INFO] [stderr] | [INFO] [stderr] 451 | if pos_terms.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `pos_terms.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: length comparison to zero [INFO] [stderr] --> src/solver.rs:462:12 [INFO] [stderr] | [INFO] [stderr] 462 | if neg_terms.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `neg_terms.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:43:30 [INFO] [stderr] | [INFO] [stderr] 43 | WidgetConstraint::Center(widget.layout_ref().clone()).builder(REQUIRED) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `widget.layout_ref()` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:124:33 [INFO] [stderr] | [INFO] [stderr] 124 | PaddableConstraint::BoundBy(outer.clone()).builder(REQUIRED) [INFO] [stderr] | ^^^^^^^^^^^^^ help: try removing the `clone` call: `outer` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:129:37 [INFO] [stderr] | [INFO] [stderr] 129 | PaddableConstraint::MatchLayout(widget.clone()).builder(REQUIRED) [INFO] [stderr] | ^^^^^^^^^^^^^^ help: try removing the `clone` call: `widget` [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: `ref` on an entire `let` pattern is discouraged, take a reference with `&` instead [INFO] [stderr] --> src/constraint.rs:238:13 [INFO] [stderr] | [INFO] [stderr] 238 | let ref terms = self.expr().terms; [INFO] [stderr] | ----^^^^^^^^^--------------------- help: try: `let terms = &self.expr().terms;` [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: Could not compile `limn-layout`. [INFO] [stderr] warning: build failed, waiting for other jobs to finish... [INFO] [stderr] warning: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:279:15 [INFO] [stderr] | [INFO] [stderr] 279 | match self.constraint.clone() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.constraint` [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: using `clone` on a `Copy` type [INFO] [stderr] --> src/constraint.rs:345:15 [INFO] [stderr] | [INFO] [stderr] 345 | match self.constraint.clone() { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: try removing the `clone` call: `self.constraint` [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: length comparison to zero [INFO] [stderr] --> src/grid_layout.rs:53:47 [INFO] [stderr] | [INFO] [stderr] 53 | if self.column == self.num_columns || self.rows.len() == 0 { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: using `is_empty` is clearer and more explicit: `self.rows.is_empty()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#len_zero [INFO] [stderr] [INFO] [stderr] warning: called `.get().unwrap()` on a Vec. Using `[]` is more clear and more concise [INFO] [stderr] --> src/grid_layout.rs:78:54 [INFO] [stderr] | [INFO] [stderr] 78 | let (row, col) = (self.rows.last().unwrap(), self.columns.get(self.column).unwrap()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `self.columns[self.column]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::get_unwrap)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#get_unwrap [INFO] [stderr] [INFO] [stderr] error: aborting due to previous error [INFO] [stderr] [INFO] [stderr] error: Could not compile `limn-layout`. [INFO] [stderr] [INFO] [stderr] To learn more, run the command again with --verbose. [INFO] running `"docker" "inspect" "25ddee7305bb53d1e31cc59a83927ebdc80ff5542c4d44ccdfdab325bbe222d5"` [INFO] running `"docker" "rm" "-f" "25ddee7305bb53d1e31cc59a83927ebdc80ff5542c4d44ccdfdab325bbe222d5"` [INFO] [stdout] 25ddee7305bb53d1e31cc59a83927ebdc80ff5542c4d44ccdfdab325bbe222d5