[INFO] crate kailua_types 1.1.0 is already in cache [INFO] extracting crate kailua_types 1.1.0 into work/ex/clippy-test-run/sources/stable/reg/kailua_types/1.1.0 [INFO] extracting crate kailua_types 1.1.0 into work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kailua_types/1.1.0 [INFO] validating manifest of kailua_types-1.1.0 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 kailua_types-1.1.0 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 kailua_types-1.1.0 [INFO] removed path dependency kailua_diag from kailua_types-1.1.0 [INFO] removed path dependency kailua_env from kailua_types-1.1.0 [INFO] removed path dependency kailua_syntax from kailua_types-1.1.0 [INFO] finished frobbing kailua_types-1.1.0 [INFO] frobbed toml for kailua_types-1.1.0 written to work/ex/clippy-test-run/sources/stable/reg/kailua_types/1.1.0/Cargo.toml [INFO] started frobbing kailua_types-1.1.0 [INFO] removed path dependency kailua_diag from kailua_types-1.1.0 [INFO] removed path dependency kailua_env from kailua_types-1.1.0 [INFO] removed path dependency kailua_syntax from kailua_types-1.1.0 [INFO] finished frobbing kailua_types-1.1.0 [INFO] frobbed toml for kailua_types-1.1.0 written to work/ex/clippy-test-run/sources/stable+rustflags=-Dclippy%3A%3Ainto_iter_on_array/reg/kailua_types/1.1.0/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 kailua_types-1.1.0 against stable for clippy-test-run [INFO] running `"docker" "create" "-v" "/mnt/big/crater/work/local/target-dirs/clippy-test-run/worker-7/stable:/opt/crater/target:rw,Z" "-v" "/mnt/big/crater/work/ex/clippy-test-run/sources/stable/reg/kailua_types/1.1.0:/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] 4368a2591bef5e321087800440e920046abb6837f8b1295e50295211edcc6d6e [INFO] running `"docker" "start" "-a" "4368a2591bef5e321087800440e920046abb6837f8b1295e50295211edcc6d6e"` [INFO] [stderr] Checking parse-generics-shim v0.1.1 [INFO] [stderr] Checking kailua_env v1.0.4 [INFO] [stderr] Checking atomic v0.3.4 [INFO] [stderr] Checking kailua_diag v1.0.4 [INFO] [stderr] Checking kailua_syntax v1.1.0 [INFO] [stderr] Checking kailua_types v1.1.0 (/opt/crater/workdir) [INFO] [stderr] warning: redundant field names in struct initialization [INFO] [stderr] --> src/l10nutils.rs:60:54 [INFO] [stderr] | [INFO] [stderr] 60 | QuotedList { iter: RefCell::new(Some(iter)), locale: locale } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `locale` [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/diag.rs:107:22 [INFO] [stderr] | [INFO] [stderr] 107 | TypeReport { locale: locale, messages: Vec::new() } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `locale` [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/diag.rs:408:52 [INFO] [stderr] | [INFO] [stderr] 408 | |sub, sup| m::NotSubtype { sub: sub, sup: sup }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:408:62 [INFO] [stderr] | [INFO] [stderr] 408 | |sub, sup| m::NotSubtype { sub: sub, sup: sup }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:409:58 [INFO] [stderr] | [INFO] [stderr] 409 | |sub, sup| m::NotSubtypeInSelf { sub: sub, sup: sup }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:409:68 [INFO] [stderr] | [INFO] [stderr] 409 | |sub, sup| m::NotSubtypeInSelf { sub: sub, sup: sup }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:410:65 [INFO] [stderr] | [INFO] [stderr] 410 | |sub, sup, i| m::NotSubtypeInFuncArgs { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:410:75 [INFO] [stderr] | [INFO] [stderr] 410 | |sub, sup, i| m::NotSubtypeInFuncArgs { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:411:67 [INFO] [stderr] | [INFO] [stderr] 411 | |sub, sup, i| m::NotSubtypeInMethodArgs { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:411:77 [INFO] [stderr] | [INFO] [stderr] 411 | |sub, sup, i| m::NotSubtypeInMethodArgs { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:412:64 [INFO] [stderr] | [INFO] [stderr] 412 | |sub, sup, i| m::NotSubtypeInReturns { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:412:74 [INFO] [stderr] | [INFO] [stderr] 412 | |sub, sup, i| m::NotSubtypeInReturns { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:419:50 [INFO] [stderr] | [INFO] [stderr] 419 | |lhs, rhs| m::NotEqual { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:419:60 [INFO] [stderr] | [INFO] [stderr] 419 | |lhs, rhs| m::NotEqual { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:420:56 [INFO] [stderr] | [INFO] [stderr] 420 | |lhs, rhs| m::NotEqualInSelf { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:420:66 [INFO] [stderr] | [INFO] [stderr] 420 | |lhs, rhs| m::NotEqualInSelf { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:421:63 [INFO] [stderr] | [INFO] [stderr] 421 | |lhs, rhs, i| m::NotEqualInFuncArgs { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:421:73 [INFO] [stderr] | [INFO] [stderr] 421 | |lhs, rhs, i| m::NotEqualInFuncArgs { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:422:65 [INFO] [stderr] | [INFO] [stderr] 422 | |lhs, rhs, i| m::NotEqualInMethodArgs { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:422:75 [INFO] [stderr] | [INFO] [stderr] 422 | |lhs, rhs, i| m::NotEqualInMethodArgs { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:423:62 [INFO] [stderr] | [INFO] [stderr] 423 | |lhs, rhs, i| m::NotEqualInReturns { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:423:72 [INFO] [stderr] | [INFO] [stderr] 423 | |lhs, rhs, i| m::NotEqualInReturns { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:431:58 [INFO] [stderr] | [INFO] [stderr] 431 | |lhs, rhs| m::InvalidUnionType { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:431:68 [INFO] [stderr] | [INFO] [stderr] 431 | |lhs, rhs| m::InvalidUnionType { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:432:64 [INFO] [stderr] | [INFO] [stderr] 432 | |lhs, rhs| m::InvalidUnionTypeInSelf { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:432:74 [INFO] [stderr] | [INFO] [stderr] 432 | |lhs, rhs| m::InvalidUnionTypeInSelf { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:433:71 [INFO] [stderr] | [INFO] [stderr] 433 | |lhs, rhs, i| m::InvalidUnionTypeInFuncArgs { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:433:81 [INFO] [stderr] | [INFO] [stderr] 433 | |lhs, rhs, i| m::InvalidUnionTypeInFuncArgs { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:435:73 [INFO] [stderr] | [INFO] [stderr] 435 | |lhs, rhs, i| m::InvalidUnionTypeInMethodArgs { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:435:83 [INFO] [stderr] | [INFO] [stderr] 435 | |lhs, rhs, i| m::InvalidUnionTypeInMethodArgs { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:437:70 [INFO] [stderr] | [INFO] [stderr] 437 | |lhs, rhs, i| m::InvalidUnionTypeInReturns { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:437:80 [INFO] [stderr] | [INFO] [stderr] 437 | |lhs, rhs, i| m::InvalidUnionTypeInReturns { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:492:64 [INFO] [stderr] | [INFO] [stderr] 492 | self = self.cause(ty, m::CannotUnionType { ty: ty }); [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/diag.rs:496:62 [INFO] [stderr] | [INFO] [stderr] 496 | self = self.cause(lhs, m::CannotAssign { lhs: lhs, rhs: rhs }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:496:72 [INFO] [stderr] | [INFO] [stderr] 496 | self = self.cause(lhs, m::CannotAssign { lhs: lhs, rhs: rhs }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:501:62 [INFO] [stderr] | [INFO] [stderr] 501 | self = self.cause(tab, m::CannotUpdate { tab: tab }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tab` [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/diag.rs:505:61 [INFO] [stderr] | [INFO] [stderr] 505 | self = self.cause(ty, m::CannotFilter { ty: ty }); [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/diag.rs:518:69 [INFO] [stderr] | [INFO] [stderr] 518 | self = self.cause(recspan, m::RecDuplicateKey { key: key }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/diag.rs:523:70 [INFO] [stderr] | [INFO] [stderr] 523 | self = self.cause(recspan, m::RecCannotHaveKey { key: key }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/diag.rs:534:75 [INFO] [stderr] | [INFO] [stderr] 534 | self = self.cause(recspan, m::RecExtendedWithNonNil { key: key, slot: value }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/ty/display.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | locale: locale, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `locale` [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/ty/display.rs:176:33 [INFO] [stderr] | [INFO] [stderr] 176 | Displayed { base: self, ctx: ctx } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ctx` [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/ty/functions.rs:37:23 [INFO] [stderr] | [INFO] [stderr] 37 | Ok(Function { args: args, argnames: argnames, returns: returns }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/ty/functions.rs:37:35 [INFO] [stderr] | [INFO] [stderr] 37 | Ok(Function { args: args, argnames: argnames, returns: returns }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `argnames` [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/ty/functions.rs:37:55 [INFO] [stderr] | [INFO] [stderr] 37 | Ok(Function { args: args, argnames: argnames, returns: returns }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `returns` [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/ty/union.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | simple: simple, numbers: None, strings: None, tables: None, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `simple` [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/ty/union.rs:335:17 [INFO] [stderr] | [INFO] [stderr] 335 | simple: simple, numbers: numbers, strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `simple` [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/ty/union.rs:335:33 [INFO] [stderr] | [INFO] [stderr] 335 | simple: simple, numbers: numbers, strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `numbers` [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/ty/union.rs:335:51 [INFO] [stderr] | [INFO] [stderr] 335 | simple: simple, numbers: numbers, strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `strings` [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/ty/union.rs:336:17 [INFO] [stderr] | [INFO] [stderr] 336 | tables: tables, functions: functions, classes: classes, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `tables` [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/ty/union.rs:336:33 [INFO] [stderr] | [INFO] [stderr] 336 | tables: tables, functions: functions, classes: classes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `functions` [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/ty/union.rs:336:55 [INFO] [stderr] | [INFO] [stderr] 336 | tables: tables, functions: functions, classes: classes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `classes` [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/ty/value.rs:1097:19 [INFO] [stderr] | [INFO] [stderr] 1097 | TyInner { ty: ty, nil: nil, tag: None, display_hint: None } [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/ty/value.rs:1097:27 [INFO] [stderr] | [INFO] [stderr] 1097 | TyInner { ty: ty, nil: nil, tag: None, display_hint: None } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `nil` [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/ty/value.rs:1147:13 [INFO] [stderr] | [INFO] [stderr] 1147 | 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/ty/seq.rs:678:24 [INFO] [stderr] | [INFO] [stderr] 678 | span: span } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/ty/seq.rs:691:26 [INFO] [stderr] | [INFO] [stderr] 691 | span: span } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/ty/tag.rs:147:76 [INFO] [stderr] | [INFO] [stderr] 147 | count: count }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [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/ty/tag.rs:154:76 [INFO] [stderr] | [INFO] [stderr] 154 | count: count }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [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/l10nutils.rs:60:54 [INFO] [stderr] | [INFO] [stderr] 60 | QuotedList { iter: RefCell::new(Some(iter)), locale: locale } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `locale` [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/diag.rs:107:22 [INFO] [stderr] | [INFO] [stderr] 107 | TypeReport { locale: locale, messages: Vec::new() } [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `locale` [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/diag.rs:408:52 [INFO] [stderr] | [INFO] [stderr] 408 | |sub, sup| m::NotSubtype { sub: sub, sup: sup }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:408:62 [INFO] [stderr] | [INFO] [stderr] 408 | |sub, sup| m::NotSubtype { sub: sub, sup: sup }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:409:58 [INFO] [stderr] | [INFO] [stderr] 409 | |sub, sup| m::NotSubtypeInSelf { sub: sub, sup: sup }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:409:68 [INFO] [stderr] | [INFO] [stderr] 409 | |sub, sup| m::NotSubtypeInSelf { sub: sub, sup: sup }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:410:65 [INFO] [stderr] | [INFO] [stderr] 410 | |sub, sup, i| m::NotSubtypeInFuncArgs { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:410:75 [INFO] [stderr] | [INFO] [stderr] 410 | |sub, sup, i| m::NotSubtypeInFuncArgs { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:411:67 [INFO] [stderr] | [INFO] [stderr] 411 | |sub, sup, i| m::NotSubtypeInMethodArgs { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:411:77 [INFO] [stderr] | [INFO] [stderr] 411 | |sub, sup, i| m::NotSubtypeInMethodArgs { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:412:64 [INFO] [stderr] | [INFO] [stderr] 412 | |sub, sup, i| m::NotSubtypeInReturns { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sub` [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/diag.rs:412:74 [INFO] [stderr] | [INFO] [stderr] 412 | |sub, sup, i| m::NotSubtypeInReturns { sub: sub, sup: sup, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `sup` [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/diag.rs:419:50 [INFO] [stderr] | [INFO] [stderr] 419 | |lhs, rhs| m::NotEqual { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:419:60 [INFO] [stderr] | [INFO] [stderr] 419 | |lhs, rhs| m::NotEqual { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:420:56 [INFO] [stderr] | [INFO] [stderr] 420 | |lhs, rhs| m::NotEqualInSelf { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:420:66 [INFO] [stderr] | [INFO] [stderr] 420 | |lhs, rhs| m::NotEqualInSelf { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:421:63 [INFO] [stderr] | [INFO] [stderr] 421 | |lhs, rhs, i| m::NotEqualInFuncArgs { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:421:73 [INFO] [stderr] | [INFO] [stderr] 421 | |lhs, rhs, i| m::NotEqualInFuncArgs { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:422:65 [INFO] [stderr] | [INFO] [stderr] 422 | |lhs, rhs, i| m::NotEqualInMethodArgs { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:422:75 [INFO] [stderr] | [INFO] [stderr] 422 | |lhs, rhs, i| m::NotEqualInMethodArgs { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:423:62 [INFO] [stderr] | [INFO] [stderr] 423 | |lhs, rhs, i| m::NotEqualInReturns { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:423:72 [INFO] [stderr] | [INFO] [stderr] 423 | |lhs, rhs, i| m::NotEqualInReturns { lhs: lhs, rhs: rhs, index: i }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:431:58 [INFO] [stderr] | [INFO] [stderr] 431 | |lhs, rhs| m::InvalidUnionType { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:431:68 [INFO] [stderr] | [INFO] [stderr] 431 | |lhs, rhs| m::InvalidUnionType { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:432:64 [INFO] [stderr] | [INFO] [stderr] 432 | |lhs, rhs| m::InvalidUnionTypeInSelf { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:432:74 [INFO] [stderr] | [INFO] [stderr] 432 | |lhs, rhs| m::InvalidUnionTypeInSelf { lhs: lhs, rhs: rhs }, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:433:71 [INFO] [stderr] | [INFO] [stderr] 433 | |lhs, rhs, i| m::InvalidUnionTypeInFuncArgs { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:433:81 [INFO] [stderr] | [INFO] [stderr] 433 | |lhs, rhs, i| m::InvalidUnionTypeInFuncArgs { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:435:73 [INFO] [stderr] | [INFO] [stderr] 435 | |lhs, rhs, i| m::InvalidUnionTypeInMethodArgs { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:435:83 [INFO] [stderr] | [INFO] [stderr] 435 | |lhs, rhs, i| m::InvalidUnionTypeInMethodArgs { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:437:70 [INFO] [stderr] | [INFO] [stderr] 437 | |lhs, rhs, i| m::InvalidUnionTypeInReturns { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:437:80 [INFO] [stderr] | [INFO] [stderr] 437 | |lhs, rhs, i| m::InvalidUnionTypeInReturns { lhs: lhs, rhs: rhs, [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:492:64 [INFO] [stderr] | [INFO] [stderr] 492 | self = self.cause(ty, m::CannotUnionType { ty: ty }); [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/diag.rs:496:62 [INFO] [stderr] | [INFO] [stderr] 496 | self = self.cause(lhs, m::CannotAssign { lhs: lhs, rhs: rhs }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `lhs` [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/diag.rs:496:72 [INFO] [stderr] | [INFO] [stderr] 496 | self = self.cause(lhs, m::CannotAssign { lhs: lhs, rhs: rhs }) [INFO] [stderr] | ^^^^^^^^ help: replace it with: `rhs` [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/diag.rs:501:62 [INFO] [stderr] | [INFO] [stderr] 501 | self = self.cause(tab, m::CannotUpdate { tab: tab }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `tab` [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/diag.rs:505:61 [INFO] [stderr] | [INFO] [stderr] 505 | self = self.cause(ty, m::CannotFilter { ty: ty }); [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/diag.rs:518:69 [INFO] [stderr] | [INFO] [stderr] 518 | self = self.cause(recspan, m::RecDuplicateKey { key: key }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/diag.rs:523:70 [INFO] [stderr] | [INFO] [stderr] 523 | self = self.cause(recspan, m::RecCannotHaveKey { key: key }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/diag.rs:534:75 [INFO] [stderr] | [INFO] [stderr] 534 | self = self.cause(recspan, m::RecExtendedWithNonNil { key: key, slot: value }); [INFO] [stderr] | ^^^^^^^^ help: replace it with: `key` [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/ty/display.rs:30:13 [INFO] [stderr] | [INFO] [stderr] 30 | locale: locale, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `locale` [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/ty/display.rs:176:33 [INFO] [stderr] | [INFO] [stderr] 176 | Displayed { base: self, ctx: ctx } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `ctx` [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/ty/functions.rs:37:23 [INFO] [stderr] | [INFO] [stderr] 37 | Ok(Function { args: args, argnames: argnames, returns: returns }) [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `args` [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/ty/functions.rs:37:35 [INFO] [stderr] | [INFO] [stderr] 37 | Ok(Function { args: args, argnames: argnames, returns: returns }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: replace it with: `argnames` [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/ty/functions.rs:37:55 [INFO] [stderr] | [INFO] [stderr] 37 | Ok(Function { args: args, argnames: argnames, returns: returns }) [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `returns` [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/ty/union.rs:64:13 [INFO] [stderr] | [INFO] [stderr] 64 | simple: simple, numbers: None, strings: None, tables: None, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `simple` [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/ty/union.rs:335:17 [INFO] [stderr] | [INFO] [stderr] 335 | simple: simple, numbers: numbers, strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `simple` [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/ty/union.rs:335:33 [INFO] [stderr] | [INFO] [stderr] 335 | simple: simple, numbers: numbers, strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `numbers` [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/ty/union.rs:335:51 [INFO] [stderr] | [INFO] [stderr] 335 | simple: simple, numbers: numbers, strings: strings, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `strings` [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/ty/union.rs:336:17 [INFO] [stderr] | [INFO] [stderr] 336 | tables: tables, functions: functions, classes: classes, [INFO] [stderr] | ^^^^^^^^^^^^^^ help: replace it with: `tables` [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/ty/union.rs:336:33 [INFO] [stderr] | [INFO] [stderr] 336 | tables: tables, functions: functions, classes: classes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ help: replace it with: `functions` [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/ty/union.rs:336:55 [INFO] [stderr] | [INFO] [stderr] 336 | tables: tables, functions: functions, classes: classes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `classes` [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/env/mod.rs:64:23 [INFO] [stderr] | [INFO] [stderr] 64 | Constraints { op: op, bounds: Partitions::new() } [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/env/mod.rs:240:13 [INFO] [stderr] | [INFO] [stderr] 240 | classes: classes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `classes` [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/ty/value.rs:1097:19 [INFO] [stderr] | [INFO] [stderr] 1097 | TyInner { ty: ty, nil: nil, tag: None, display_hint: None } [INFO] [stderr] | ^^^^^^ help: replace it with: `ty` [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/ty/value.rs:1097:27 [INFO] [stderr] | [INFO] [stderr] 1097 | TyInner { ty: ty, nil: nil, tag: None, display_hint: None } [INFO] [stderr] | ^^^^^^^^ help: replace it with: `nil` [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/ty/value.rs:1147:13 [INFO] [stderr] | [INFO] [stderr] 1147 | 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/ty/seq.rs:678:24 [INFO] [stderr] | [INFO] [stderr] 678 | span: span } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/ty/seq.rs:691:26 [INFO] [stderr] | [INFO] [stderr] 691 | span: span } [INFO] [stderr] | ^^^^^^^^^^ help: replace it with: `span` [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/ty/tag.rs:147:76 [INFO] [stderr] | [INFO] [stderr] 147 | count: count }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [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/ty/tag.rs:154:76 [INFO] [stderr] | [INFO] [stderr] 154 | count: count }) [INFO] [stderr] | ^^^^^^^^^^^^ help: replace it with: `count` [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/env/mod.rs:64:23 [INFO] [stderr] | [INFO] [stderr] 64 | Constraints { op: op, bounds: Partitions::new() } [INFO] [stderr] | ^^^^^^ help: replace it with: `op` [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/env/mod.rs:240:13 [INFO] [stderr] | [INFO] [stderr] 240 | classes: classes, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ help: replace it with: `classes` [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: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/functions.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | / (|| { [INFO] [stderr] 160 | | match (self, other) { [INFO] [stderr] 161 | | (_, &Functions::All) => Ok(()), [INFO] [stderr] 162 | | (&Functions::All, _) => Err(ctx.gen_report()), [INFO] [stderr] ... | [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | })().map_err(|r: TypeReport| r.not_sub(Origin::Functions, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 159 | { [INFO] [stderr] 160 | match (self, other) { [INFO] [stderr] 161 | (_, &Functions::All) => Ok(()), [INFO] [stderr] 162 | (&Functions::All, _) => Err(ctx.gen_report()), [INFO] [stderr] 163 | [INFO] [stderr] 164 | (&Functions::Simple(ref a), &Functions::Simple(ref b)) => a.assert_sub(b, ctx), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/functions.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | / (|| { [INFO] [stderr] 171 | | match (self, other) { [INFO] [stderr] 172 | | (&Functions::All, &Functions::All) => Ok(()), [INFO] [stderr] 173 | | (&Functions::Simple(ref a), &Functions::Simple(ref b)) => a.assert_eq(b, ctx), [INFO] [stderr] 174 | | (_, _) => Err(ctx.gen_report()), [INFO] [stderr] 175 | | } [INFO] [stderr] 176 | | })().map_err(|r: TypeReport| r.not_eq(Origin::Functions, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 170 | { [INFO] [stderr] 171 | match (self, other) { [INFO] [stderr] 172 | (&Functions::All, &Functions::All) => Ok(()), [INFO] [stderr] 173 | (&Functions::Simple(ref a), &Functions::Simple(ref b)) => a.assert_eq(b, ctx), [INFO] [stderr] 174 | (_, _) => Err(ctx.gen_report()), [INFO] [stderr] 175 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/value.rs:593:9 [INFO] [stderr] | [INFO] [stderr] 593 | / (|| { [INFO] [stderr] 594 | | match *self { [INFO] [stderr] 595 | | T::Dynamic(_) => Ok(()), [INFO] [stderr] 596 | | T::Union(ref lhs) => lhs.assert_eq(other, ctx), [INFO] [stderr] 597 | | _ => Err(ctx.gen_report()), [INFO] [stderr] 598 | | } [INFO] [stderr] 599 | | })().map_err(|r: TypeReport| r.not_eq(Origin::TUnion, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 593 | { [INFO] [stderr] 594 | match *self { [INFO] [stderr] 595 | T::Dynamic(_) => Ok(()), [INFO] [stderr] 596 | T::Union(ref lhs) => lhs.assert_eq(other, ctx), [INFO] [stderr] 597 | _ => Err(ctx.gen_report()), [INFO] [stderr] 598 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/slot.rs:319:9 [INFO] [stderr] | [INFO] [stderr] 319 | / (|| { [INFO] [stderr] 320 | | let (lbits, rbits) = self.resolve_unknown_flex(other); [INFO] [stderr] 321 | | [INFO] [stderr] 322 | | match (lbits.flex(), rbits.flex()) { [INFO] [stderr] ... | [INFO] [stderr] 331 | | } [INFO] [stderr] 332 | | })().map_err(|r: TypeReport| r.not_sub(Origin::Slot, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 319 | { [INFO] [stderr] 320 | let (lbits, rbits) = self.resolve_unknown_flex(other); [INFO] [stderr] 321 | [INFO] [stderr] 322 | match (lbits.flex(), rbits.flex()) { [INFO] [stderr] 323 | (_, F::Dynamic(_)) | (F::Dynamic(_), _) => Ok(()), [INFO] [stderr] 324 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/slot.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | / (|| { [INFO] [stderr] 339 | | let (lbits, rbits) = self.resolve_unknown_flex(other); [INFO] [stderr] 340 | | [INFO] [stderr] 341 | | match (lbits.flex(), rbits.flex()) { [INFO] [stderr] ... | [INFO] [stderr] 349 | | } [INFO] [stderr] 350 | | })().map_err(|r: TypeReport| r.not_eq(Origin::Slot, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 338 | { [INFO] [stderr] 339 | let (lbits, rbits) = self.resolve_unknown_flex(other); [INFO] [stderr] 340 | [INFO] [stderr] 341 | match (lbits.flex(), rbits.flex()) { [INFO] [stderr] 342 | (_, F::Dynamic(_)) | (F::Dynamic(_), _) => Ok(()), [INFO] [stderr] 343 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/ty/tag.rs:156:31 [INFO] [stderr] | [INFO] [stderr] 156 | const EMPTY: &'static [Spanned] = &[]; [INFO] [stderr] | -^^^^^^^--------------------- help: consider removing `'static`: `&[Spanned]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ty/mod.rs:52:38 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn any() -> RVar { RVar::new(0xffffffff) } [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/functions.rs:159:9 [INFO] [stderr] | [INFO] [stderr] 159 | / (|| { [INFO] [stderr] 160 | | match (self, other) { [INFO] [stderr] 161 | | (_, &Functions::All) => Ok(()), [INFO] [stderr] 162 | | (&Functions::All, _) => Err(ctx.gen_report()), [INFO] [stderr] ... | [INFO] [stderr] 165 | | } [INFO] [stderr] 166 | | })().map_err(|r: TypeReport| r.not_sub(Origin::Functions, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure_call)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 159 | { [INFO] [stderr] 160 | match (self, other) { [INFO] [stderr] 161 | (_, &Functions::All) => Ok(()), [INFO] [stderr] 162 | (&Functions::All, _) => Err(ctx.gen_report()), [INFO] [stderr] 163 | [INFO] [stderr] 164 | (&Functions::Simple(ref a), &Functions::Simple(ref b)) => a.assert_sub(b, ctx), [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/functions.rs:170:9 [INFO] [stderr] | [INFO] [stderr] 170 | / (|| { [INFO] [stderr] 171 | | match (self, other) { [INFO] [stderr] 172 | | (&Functions::All, &Functions::All) => Ok(()), [INFO] [stderr] 173 | | (&Functions::Simple(ref a), &Functions::Simple(ref b)) => a.assert_eq(b, ctx), [INFO] [stderr] 174 | | (_, _) => Err(ctx.gen_report()), [INFO] [stderr] 175 | | } [INFO] [stderr] 176 | | })().map_err(|r: TypeReport| r.not_eq(Origin::Functions, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 170 | { [INFO] [stderr] 171 | match (self, other) { [INFO] [stderr] 172 | (&Functions::All, &Functions::All) => Ok(()), [INFO] [stderr] 173 | (&Functions::Simple(ref a), &Functions::Simple(ref b)) => a.assert_eq(b, ctx), [INFO] [stderr] 174 | (_, _) => Err(ctx.gen_report()), [INFO] [stderr] 175 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/value.rs:593:9 [INFO] [stderr] | [INFO] [stderr] 593 | / (|| { [INFO] [stderr] 594 | | match *self { [INFO] [stderr] 595 | | T::Dynamic(_) => Ok(()), [INFO] [stderr] 596 | | T::Union(ref lhs) => lhs.assert_eq(other, ctx), [INFO] [stderr] 597 | | _ => Err(ctx.gen_report()), [INFO] [stderr] 598 | | } [INFO] [stderr] 599 | | })().map_err(|r: TypeReport| r.not_eq(Origin::TUnion, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 593 | { [INFO] [stderr] 594 | match *self { [INFO] [stderr] 595 | T::Dynamic(_) => Ok(()), [INFO] [stderr] 596 | T::Union(ref lhs) => lhs.assert_eq(other, ctx), [INFO] [stderr] 597 | _ => Err(ctx.gen_report()), [INFO] [stderr] 598 | } [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: unused macro definition [INFO] [stderr] --> src/ty/value.rs:1875:5 [INFO] [stderr] | [INFO] [stderr] 1875 | / macro_rules! hash { [INFO] [stderr] 1876 | | ($($k:ident = $v:expr),*) => (vec![$((s(stringify!($k)), $v)),*]) [INFO] [stderr] 1877 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_macros)] on by default [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/slot.rs:319:9 [INFO] [stderr] | [INFO] [stderr] 319 | / (|| { [INFO] [stderr] 320 | | let (lbits, rbits) = self.resolve_unknown_flex(other); [INFO] [stderr] 321 | | [INFO] [stderr] 322 | | match (lbits.flex(), rbits.flex()) { [INFO] [stderr] ... | [INFO] [stderr] 331 | | } [INFO] [stderr] 332 | | })().map_err(|r: TypeReport| r.not_sub(Origin::Slot, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 319 | { [INFO] [stderr] 320 | let (lbits, rbits) = self.resolve_unknown_flex(other); [INFO] [stderr] 321 | [INFO] [stderr] 322 | match (lbits.flex(), rbits.flex()) { [INFO] [stderr] 323 | (_, F::Dynamic(_)) | (F::Dynamic(_), _) => Ok(()), [INFO] [stderr] 324 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Try not to call a closure in the expression where it is declared. [INFO] [stderr] --> src/ty/slot.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | / (|| { [INFO] [stderr] 339 | | let (lbits, rbits) = self.resolve_unknown_flex(other); [INFO] [stderr] 340 | | [INFO] [stderr] 341 | | match (lbits.flex(), rbits.flex()) { [INFO] [stderr] ... | [INFO] [stderr] 349 | | } [INFO] [stderr] 350 | | })().map_err(|r: TypeReport| r.not_eq(Origin::Slot, self, other, ctx)) [INFO] [stderr] | |____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure_call [INFO] [stderr] help: Try doing something like: [INFO] [stderr] | [INFO] [stderr] 338 | { [INFO] [stderr] 339 | let (lbits, rbits) = self.resolve_unknown_flex(other); [INFO] [stderr] 340 | [INFO] [stderr] 341 | match (lbits.flex(), rbits.flex()) { [INFO] [stderr] 342 | (_, F::Dynamic(_)) | (F::Dynamic(_), _) => Ok(()), [INFO] [stderr] 343 | [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: Constants have by default a `'static` lifetime [INFO] [stderr] --> src/ty/tag.rs:156:31 [INFO] [stderr] | [INFO] [stderr] 156 | const EMPTY: &'static [Spanned] = &[]; [INFO] [stderr] | -^^^^^^^--------------------- help: consider removing `'static`: `&[Spanned]` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::const_static_lifetime)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#const_static_lifetime [INFO] [stderr] [INFO] [stderr] warning: long literal lacking separators [INFO] [stderr] --> src/ty/mod.rs:52:38 [INFO] [stderr] | [INFO] [stderr] 52 | pub fn any() -> RVar { RVar::new(0xffffffff) } [INFO] [stderr] | ^^^^^^^^^^ help: consider: `0xffff_ffff` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::unreadable_literal)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unreadable_literal [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ty/display.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | let mut spans = disambig.entry(name.base.clone()).or_insert_with(|| HashMap::new()); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/env/mod.rs:381:17 [INFO] [stderr] | [INFO] [stderr] 381 | let mut row = [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/env/mod.rs:388:17 [INFO] [stderr] | [INFO] [stderr] 388 | let mut row = [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/l10nutils.rs:80:32 [INFO] [stderr] | [INFO] [stderr] 80 | while let Some(next) = iter.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for next in iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/diag.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | fn origin_class(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/diag.rs:74:26 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn can_overwrite(&self, prev: Origin) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/diag.rs:296:20 [INFO] [stderr] | [INFO] [stderr] 296 | let keys = keys.map(|k| k.clone()).collect::>().without_loc(); // TODO span [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `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: this function has too many arguments (10/7) [INFO] [stderr] --> src/diag.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | / fn report_binary< [INFO] [stderr] 339 | | 'a, 'b, T, [INFO] [stderr] 340 | | M: 'b + Localize, Msg: FnOnce(&'b str, &'b str) -> M, [INFO] [stderr] 341 | | MS: 'b + Localize, MsgSelf: FnOnce(&'b str, &'b str) -> MS, [INFO] [stderr] ... | [INFO] [stderr] 400 | | } [INFO] [stderr] 401 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/display.rs:78:74 [INFO] [stderr] | [INFO] [stderr] 78 | let mut spans = disambig.entry(name.base.clone()).or_insert_with(|| HashMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/display.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | / fn display<'b, C>(&'b self, ctx: C) -> Displayed<'b, Self, C> { [INFO] [stderr] 176 | | Displayed { base: self, ctx: ctx } [INFO] [stderr] 177 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/tables.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn to_type<'a>(&'a self) -> T<'a> { [INFO] [stderr] 22 | | match *self { [INFO] [stderr] 23 | | Key::Int(v) => T::Int(v), [INFO] [stderr] 24 | | Key::Str(ref s) => T::Str(Cow::Borrowed(s)), [INFO] [stderr] 25 | | } [INFO] [stderr] 26 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/ty/tables.rs:337:57 [INFO] [stderr] | [INFO] [stderr] 337 | Key::Str(ref s) if has_n && &s[..] == &b"n"[..] => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 337 | Key::Str(ref s) if has_n && s[..] == b"n"[..] => { [INFO] [stderr] | ^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ty/union.rs:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | / match ty { [INFO] [stderr] 87 | | &T::Dynamic(_) | &T::All => { [INFO] [stderr] 88 | | panic!("Unioned::from called with T::Dynamic or T::All"); [INFO] [stderr] 89 | | } [INFO] [stderr] ... | [INFO] [stderr] 111 | | &T::Union(ref u) => return Ok(u.clone().into_owned()), // ignore `u` above [INFO] [stderr] 112 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 86 | match *ty { [INFO] [stderr] 87 | T::Dynamic(_) | T::All => { [INFO] [stderr] 88 | panic!("Unioned::from called with T::Dynamic or T::All"); [INFO] [stderr] 89 | } [INFO] [stderr] 90 | T::TVar(_) => { [INFO] [stderr] 91 | return Err(ctx.gen_report().cannot_union_single(ty, ctx)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:42:18 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn union(&self, rhs: Dyn) -> Dyn { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/ty/value.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | Union(Cow<'a, Unioned>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 116 | Union(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/value.rs:413:9 [INFO] [stderr] | [INFO] [stderr] 413 | / fn narrow_numbers<'a>(num: Cow<'a, Numbers>, flags: Flags) -> Option> { [INFO] [stderr] 414 | | let is_all = match num.as_ref() { &Numbers::All => true, _ => false }; [INFO] [stderr] 415 | | match (flags & T_NUMBER, is_all) { [INFO] [stderr] 416 | | (T_NONINTEGER, false) => None, [INFO] [stderr] ... | [INFO] [stderr] 420 | | } [INFO] [stderr] 421 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ty/value.rs:414:26 [INFO] [stderr] | [INFO] [stderr] 414 | let is_all = match num.as_ref() { &Numbers::All => true, _ => false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 414 | let is_all = match *num.as_ref() { Numbers::All => true, _ => false }; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/ty/value.rs:610:16 [INFO] [stderr] | [INFO] [stderr] 610 | -> (Cow<'t, T<'u>>, Option<(Nil, Option)>, Option) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ty/value.rs:612:13 [INFO] [stderr] | [INFO] [stderr] 612 | / if let &T::TVar(tv) = t { [INFO] [stderr] 613 | | if let Some(ty) = ctx.get_tvar_exact_type(tv) { [INFO] [stderr] 614 | | let nil = ty.nil(); [INFO] [stderr] 615 | | let tag = ty.tag(); [INFO] [stderr] ... | [INFO] [stderr] 618 | | } [INFO] [stderr] 619 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 612 | if let T::TVar(tv) = *t { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/ty/value.rs:748:60 [INFO] [stderr] | [INFO] [stderr] 748 | let mut selfhint = selfhint.map(Cow::Borrowed).or(hint1.map(Cow::Owned)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| hint1.map(Cow::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: use of `or` followed by a function call [INFO] [stderr] --> src/ty/value.rs:749:62 [INFO] [stderr] | [INFO] [stderr] 749 | let mut otherhint = otherhint.map(Cow::Borrowed).or(hint2.map(Cow::Owned)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| hint2.map(Cow::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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1036:21 [INFO] [stderr] | [INFO] [stderr] 1036 | pub fn with_nil(&self) -> Nil { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1044:24 [INFO] [stderr] | [INFO] [stderr] 1044 | pub fn without_nil(&self) -> Nil { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1052:18 [INFO] [stderr] | [INFO] [stderr] 1052 | pub fn union(&self, other: Nil) -> Nil { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1060:19 [INFO] [stderr] | [INFO] [stderr] 1060 | pub fn is_sub(&self, other: Nil) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1067:18 [INFO] [stderr] | [INFO] [stderr] 1067 | pub fn is_eq(&self, other: Nil) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/slot.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | fn make(&self) -> AtomicUsize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/slot.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | fn flex(&self) -> F { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/slot.rs:137:18 [INFO] [stderr] | [INFO] [stderr] 137 | fn with_flex(&self, flex: F) -> Bits { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/slot.rs:224:5 [INFO] [stderr] | [INFO] [stderr] 224 | / pub fn unlift<'a>(&'a self) -> UnliftedSlot<'a> { [INFO] [stderr] 225 | | UnliftedSlot(self.ty.read()) [INFO] [stderr] 226 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/ty/slot.rs:418:16 [INFO] [stderr] | [INFO] [stderr] 418 | pub fn new<'a>(flex: F, ty: Ty) -> Slot { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/slot.rs:438:5 [INFO] [stderr] | [INFO] [stderr] 438 | / pub fn unlift<'a>(&'a self) -> UnliftedSlot<'a> { [INFO] [stderr] 439 | | self.0.unlift() [INFO] [stderr] 440 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ty::seq::TySeq` [INFO] [stderr] --> src/ty/seq.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | / pub fn new($($span: $spanty,)*) -> $tyseq { [INFO] [stderr] 168 | | $tyseq { head: Vec::new(), tail: None, $($span: $span,)* } [INFO] [stderr] 169 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 593 | / define_tyseq! { [INFO] [stderr] 594 | | /// A sequence of value types. [INFO] [stderr] 595 | | type TySeq { [INFO] [stderr] 596 | | t = ['a] T<'a>; [INFO] [stderr] ... | [INFO] [stderr] 629 | | } [INFO] [stderr] 630 | | } [INFO] [stderr] | |_- in this macro invocation [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] 127 | #[derive(Default)] [INFO] [stderr] 128 | pub struct $tyseq { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `into_iter` on this type; consider implementing the `std::iter::IntoIterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/ty/seq.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | / pub fn into_iter(self) -> SeqIter<$ty> { [INFO] [stderr] 222 | | SeqIter { head: self.head.into_iter(), tail: self.tail.map($ty_with_nil) } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 593 | / define_tyseq! { [INFO] [stderr] 594 | | /// A sequence of value types. [INFO] [stderr] 595 | | type TySeq { [INFO] [stderr] 596 | | t = ['a] T<'a>; [INFO] [stderr] ... | [INFO] [stderr] 629 | | } [INFO] [stderr] 630 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: defining a method called `into_iter` on this type; consider implementing the `std::iter::IntoIterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/ty/seq.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | / pub fn into_iter(self) -> SeqIter<$ty> { [INFO] [stderr] 222 | | SeqIter { head: self.head.into_iter(), tail: self.tail.map($ty_with_nil) } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 593 | / define_tyseq! { [INFO] [stderr] 594 | | /// A sequence of value types. [INFO] [stderr] 595 | | type TySeq { [INFO] [stderr] 596 | | t = ['a] T<'a>; [INFO] [stderr] ... | [INFO] [stderr] 629 | | } [INFO] [stderr] 630 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ty::seq::SlotSeq` [INFO] [stderr] --> src/ty/seq.rs:414:13 [INFO] [stderr] | [INFO] [stderr] 414 | / pub fn new($($span: $spanty,)*) -> $slotseq { [INFO] [stderr] 415 | | $slotseq { head: Vec::new(), tail: None, $($span: $span,)* } [INFO] [stderr] 416 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [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] 369 | #[derive(Default)] [INFO] [stderr] 370 | pub struct $slotseq { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:419:59 [INFO] [stderr] | [INFO] [stderr] 419 | $slotseq { head: seq.head.into_iter().map(|t| $ty_to_slot(t)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|t: Ty| Slot::just(t)` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:420:47 [INFO] [stderr] | [INFO] [stderr] 420 | tail: seq.tail.map(|t| $ty_to_slot(t)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|t: Ty| Slot::just(t)` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: defining a method called `into_iter` on this type; consider implementing the `std::iter::IntoIterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/ty/seq.rs:460:13 [INFO] [stderr] | [INFO] [stderr] 460 | / pub fn into_iter(self) -> SeqIter<$slot> { [INFO] [stderr] 461 | | SeqIter { head: self.head.into_iter(), tail: self.tail.map($slot_with_nil) } [INFO] [stderr] 462 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:480:58 [INFO] [stderr] | [INFO] [stderr] 480 | $tyseq { head: self.head.into_iter().map(|s| $slot_to_ty(s)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|s: Slot| s.unlift().clone()` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:481:46 [INFO] [stderr] | [INFO] [stderr] 481 | tail: self.tail.map(|s| $slot_to_ty(s)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|s: Slot| s.unlift().clone()` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:661:45 [INFO] [stderr] | [INFO] [stderr] 661 | ty_to_slot = |t: Spanned| t.map(|t| Slot::just(t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Slot::just` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:419:59 [INFO] [stderr] | [INFO] [stderr] 419 | $slotseq { head: seq.head.into_iter().map(|t| $ty_to_slot(t)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|t: Spanned| t.map(|t| Slot::just(t))` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:420:47 [INFO] [stderr] | [INFO] [stderr] 420 | tail: seq.tail.map(|t| $ty_to_slot(t)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|t: Spanned| t.map(|t| Slot::just(t))` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:480:58 [INFO] [stderr] | [INFO] [stderr] 480 | $tyseq { head: self.head.into_iter().map(|s| $slot_to_ty(s)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|s: Spanned| s.map(|s| s.unlift().clone())` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:481:46 [INFO] [stderr] | [INFO] [stderr] 481 | tail: self.tail.map(|s| $slot_to_ty(s)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|s: Spanned| s.map(|s| s.unlift().clone())` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/tag.rs:199:17 [INFO] [stderr] | [INFO] [stderr] 199 | pub fn name(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/tag.rs:228:24 [INFO] [stderr] | [INFO] [stderr] 228 | pub fn scope_local(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/tag.rs:247:26 [INFO] [stderr] | [INFO] [stderr] 247 | pub fn needs_subtype(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ty/tag.rs:265:9 [INFO] [stderr] | [INFO] [stderr] 265 | / match *self { [INFO] [stderr] 266 | | Tag::MakeClass(csid) => { [INFO] [stderr] 267 | | write!(f, "({:?})", csid)?; [INFO] [stderr] 268 | | } [INFO] [stderr] 269 | | _ => {} [INFO] [stderr] 270 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 265 | if let Tag::MakeClass(csid) = *self { [INFO] [stderr] 266 | write!(f, "({:?})", csid)?; [INFO] [stderr] 267 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ty/tag.rs:280:9 [INFO] [stderr] | [INFO] [stderr] 280 | / match *self { [INFO] [stderr] 281 | | Tag::MakeClass(csid) => { [INFO] [stderr] 282 | | write!(f, "(")?; [INFO] [stderr] 283 | | st.context.fmt_class_system_name(csid, f, st)?; [INFO] [stderr] ... | [INFO] [stderr] 286 | | _ => {} [INFO] [stderr] 287 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 280 | if let Tag::MakeClass(csid) = *self { [INFO] [stderr] 281 | write!(f, "(")?; [INFO] [stderr] 282 | st.context.fmt_class_system_name(csid, f, st)?; [INFO] [stderr] 283 | write!(f, ")")?; [INFO] [stderr] 284 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/ty/mod.rs:293:36 [INFO] [stderr] | [INFO] [stderr] 293 | let tag = ty.tag().or(ty2.tag()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `or_else(|| ty2.tag())` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:566:27 [INFO] [stderr] | [INFO] [stderr] 566 | pub fn is_dynamic(&self) -> bool { self.intersects(T_DYNAMIC) } [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:568:28 [INFO] [stderr] | [INFO] [stderr] 568 | pub fn is_integral(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:572:27 [INFO] [stderr] | [INFO] [stderr] 572 | pub fn is_numeric(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:576:27 [INFO] [stderr] | [INFO] [stderr] 576 | pub fn is_stringy(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:580:27 [INFO] [stderr] | [INFO] [stderr] 580 | pub fn is_tabular(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:584:28 [INFO] [stderr] | [INFO] [stderr] 584 | pub fn is_callable(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:588:26 [INFO] [stderr] | [INFO] [stderr] 588 | pub fn is_truthy(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:592:25 [INFO] [stderr] | [INFO] [stderr] 592 | pub fn is_falsy(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:596:28 [INFO] [stderr] | [INFO] [stderr] 596 | pub fn get_dynamic(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/env/mod.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | / fn get_bound<'a>(&'a self, lhs: TVar) -> Option<&'a Bound> { [INFO] [stderr] 72 | | let lhs = self.bounds.find(lhs.0 as usize); [INFO] [stderr] 73 | | self.bounds.get(lhs).map(|b| &**b) [INFO] [stderr] 74 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/env/mod.rs:514:31 [INFO] [stderr] | [INFO] [stderr] 514 | if let Some(ub) = self.tvar_sub.add_bound(lhs, &rhs).map(|b| b.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.tvar_sub.add_bound(lhs, &rhs).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/env/mod.rs:535:31 [INFO] [stderr] | [INFO] [stderr] 535 | if let Some(lb) = self.tvar_sup.add_bound(lhs, rhs).map(|b| b.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.tvar_sup.add_bound(lhs, rhs).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/env/mod.rs:553:27 [INFO] [stderr] | [INFO] [stderr] 553 | if let Some(eb) = self.tvar_eq.add_bound(lhs, &rhs).map(|b| b.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.tvar_eq.add_bound(lhs, &rhs).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/ty/display.rs:78:13 [INFO] [stderr] | [INFO] [stderr] 78 | let mut spans = disambig.entry(name.base.clone()).or_insert_with(|| HashMap::new()); [INFO] [stderr] | ----^^^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(unused_mut)] on by default [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/env/mod.rs:381:17 [INFO] [stderr] | [INFO] [stderr] 381 | let mut row = [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: variable does not need to be mutable [INFO] [stderr] --> src/env/mod.rs:388:17 [INFO] [stderr] | [INFO] [stderr] 388 | let mut row = [INFO] [stderr] | ----^^^ [INFO] [stderr] | | [INFO] [stderr] | help: remove this `mut` [INFO] [stderr] [INFO] [stderr] warning: this loop could be written as a `for` loop [INFO] [stderr] --> src/l10nutils.rs:80:32 [INFO] [stderr] | [INFO] [stderr] 80 | while let Some(next) = iter.next() { [INFO] [stderr] | ^^^^^^^^^^^ help: try: `for next in iter { .. }` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::while_let_on_iterator)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#while_let_on_iterator [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/diag.rs:70:21 [INFO] [stderr] | [INFO] [stderr] 70 | fn origin_class(&self) -> u8 { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::trivially_copy_pass_by_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/diag.rs:74:26 [INFO] [stderr] | [INFO] [stderr] 74 | pub fn can_overwrite(&self, prev: Origin) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/diag.rs:296:20 [INFO] [stderr] | [INFO] [stderr] 296 | let keys = keys.map(|k| k.clone()).collect::>().without_loc(); // TODO span [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `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: this function has too many arguments (10/7) [INFO] [stderr] --> src/diag.rs:338:9 [INFO] [stderr] | [INFO] [stderr] 338 | / fn report_binary< [INFO] [stderr] 339 | | 'a, 'b, T, [INFO] [stderr] 340 | | M: 'b + Localize, Msg: FnOnce(&'b str, &'b str) -> M, [INFO] [stderr] 341 | | MS: 'b + Localize, MsgSelf: FnOnce(&'b str, &'b str) -> MS, [INFO] [stderr] ... | [INFO] [stderr] 400 | | } [INFO] [stderr] 401 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::too_many_arguments)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#too_many_arguments [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/display.rs:78:74 [INFO] [stderr] | [INFO] [stderr] 78 | let mut spans = disambig.entry(name.base.clone()).or_insert_with(|| HashMap::new()); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `HashMap::new` [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::redundant_closure)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/display.rs:175:5 [INFO] [stderr] | [INFO] [stderr] 175 | / fn display<'b, C>(&'b self, ctx: C) -> Displayed<'b, Self, C> { [INFO] [stderr] 176 | | Displayed { base: self, ctx: ctx } [INFO] [stderr] 177 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::needless_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/tables.rs:21:5 [INFO] [stderr] | [INFO] [stderr] 21 | / pub fn to_type<'a>(&'a self) -> T<'a> { [INFO] [stderr] 22 | | match *self { [INFO] [stderr] 23 | | Key::Int(v) => T::Int(v), [INFO] [stderr] 24 | | Key::Str(ref s) => T::Str(Cow::Borrowed(s)), [INFO] [stderr] 25 | | } [INFO] [stderr] 26 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: needlessly taken reference of both operands [INFO] [stderr] --> src/ty/tables.rs:337:57 [INFO] [stderr] | [INFO] [stderr] 337 | Key::Str(ref s) if has_n && &s[..] == &b"n"[..] => { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::op_ref)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#op_ref [INFO] [stderr] help: use the values directly [INFO] [stderr] | [INFO] [stderr] 337 | Key::Str(ref s) if has_n && s[..] == b"n"[..] => { [INFO] [stderr] | ^^^^^ ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ty/union.rs:86:9 [INFO] [stderr] | [INFO] [stderr] 86 | / match ty { [INFO] [stderr] 87 | | &T::Dynamic(_) | &T::All => { [INFO] [stderr] 88 | | panic!("Unioned::from called with T::Dynamic or T::All"); [INFO] [stderr] 89 | | } [INFO] [stderr] ... | [INFO] [stderr] 111 | | &T::Union(ref u) => return Ok(u.clone().into_owned()), // ignore `u` above [INFO] [stderr] 112 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::match_ref_pats)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 86 | match *ty { [INFO] [stderr] 87 | T::Dynamic(_) | T::All => { [INFO] [stderr] 88 | panic!("Unioned::from called with T::Dynamic or T::All"); [INFO] [stderr] 89 | } [INFO] [stderr] 90 | T::TVar(_) => { [INFO] [stderr] 91 | return Err(ctx.gen_report().cannot_union_single(ty, ctx)); [INFO] [stderr] ... [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:42:18 [INFO] [stderr] | [INFO] [stderr] 42 | pub fn union(&self, rhs: Dyn) -> Dyn { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: large size difference between variants [INFO] [stderr] --> src/ty/value.rs:116:5 [INFO] [stderr] | [INFO] [stderr] 116 | Union(Cow<'a, Unioned>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::large_enum_variant)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#large_enum_variant [INFO] [stderr] help: consider boxing the large fields to reduce the total size of the enum [INFO] [stderr] | [INFO] [stderr] 116 | Union(Box>), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/value.rs:413:9 [INFO] [stderr] | [INFO] [stderr] 413 | / fn narrow_numbers<'a>(num: Cow<'a, Numbers>, flags: Flags) -> Option> { [INFO] [stderr] 414 | | let is_all = match num.as_ref() { &Numbers::All => true, _ => false }; [INFO] [stderr] 415 | | match (flags & T_NUMBER, is_all) { [INFO] [stderr] 416 | | (T_NONINTEGER, false) => None, [INFO] [stderr] ... | [INFO] [stderr] 420 | | } [INFO] [stderr] 421 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ty/value.rs:414:26 [INFO] [stderr] | [INFO] [stderr] 414 | let is_all = match num.as_ref() { &Numbers::All => true, _ => false }; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 414 | let is_all = match *num.as_ref() { Numbers::All => true, _ => false }; [INFO] [stderr] | ^^^^^^^^^^^^^ ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: very complex type used. Consider factoring parts into `type` definitions [INFO] [stderr] --> src/ty/value.rs:610:16 [INFO] [stderr] | [INFO] [stderr] 610 | -> (Cow<'t, T<'u>>, Option<(Nil, Option)>, Option) [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::type_complexity)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity [INFO] [stderr] [INFO] [stderr] warning: you don't need to add `&` to all patterns [INFO] [stderr] --> src/ty/value.rs:612:13 [INFO] [stderr] | [INFO] [stderr] 612 | / if let &T::TVar(tv) = t { [INFO] [stderr] 613 | | if let Some(ty) = ctx.get_tvar_exact_type(tv) { [INFO] [stderr] 614 | | let nil = ty.nil(); [INFO] [stderr] 615 | | let tag = ty.tag(); [INFO] [stderr] ... | [INFO] [stderr] 618 | | } [INFO] [stderr] 619 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#match_ref_pats [INFO] [stderr] help: instead of prefixing all patterns with `&`, you can dereference the expression [INFO] [stderr] | [INFO] [stderr] 612 | if let T::TVar(tv) = *t { [INFO] [stderr] | ^^^^^^^^^^^ ^^ [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/ty/value.rs:748:60 [INFO] [stderr] | [INFO] [stderr] 748 | let mut selfhint = selfhint.map(Cow::Borrowed).or(hint1.map(Cow::Owned)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| hint1.map(Cow::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: use of `or` followed by a function call [INFO] [stderr] --> src/ty/value.rs:749:62 [INFO] [stderr] | [INFO] [stderr] 749 | let mut otherhint = otherhint.map(Cow::Borrowed).or(hint2.map(Cow::Owned)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^ help: try this: `or_else(|| hint2.map(Cow::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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1036:21 [INFO] [stderr] | [INFO] [stderr] 1036 | pub fn with_nil(&self) -> Nil { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1044:24 [INFO] [stderr] | [INFO] [stderr] 1044 | pub fn without_nil(&self) -> Nil { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1052:18 [INFO] [stderr] | [INFO] [stderr] 1052 | pub fn union(&self, other: Nil) -> Nil { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1060:19 [INFO] [stderr] | [INFO] [stderr] 1060 | pub fn is_sub(&self, other: Nil) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/value.rs:1067:18 [INFO] [stderr] | [INFO] [stderr] 1067 | pub fn is_eq(&self, other: Nil) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 146 [INFO] [stderr] --> src/ty/value.rs:1953:5 [INFO] [stderr] | [INFO] [stderr] 1953 | / fn test_union_t() { [INFO] [stderr] 1954 | | macro_rules! check { [INFO] [stderr] 1955 | | ($l:expr, $r:expr; explicit=_, implicit=$ui:expr) => [INFO] [stderr] 1956 | | (check_base!($l, $r; explicit=_, implicit=Ok($ui))); [INFO] [stderr] ... | [INFO] [stderr] 2114 | | m1.assert_eq(&m2, &mut NoTypeContext).unwrap(); [INFO] [stderr] 2115 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::cyclomatic_complexity)] on by default [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/slot.rs:129:13 [INFO] [stderr] | [INFO] [stderr] 129 | fn make(&self) -> AtomicUsize { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/slot.rs:133:13 [INFO] [stderr] | [INFO] [stderr] 133 | fn flex(&self) -> F { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/slot.rs:137:18 [INFO] [stderr] | [INFO] [stderr] 137 | fn with_flex(&self, flex: F) -> Bits { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/slot.rs:224:5 [INFO] [stderr] | [INFO] [stderr] 224 | / pub fn unlift<'a>(&'a self) -> UnliftedSlot<'a> { [INFO] [stderr] 225 | | UnliftedSlot(self.ty.read()) [INFO] [stderr] 226 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: this lifetime isn't used in the function definition [INFO] [stderr] --> src/ty/slot.rs:418:16 [INFO] [stderr] | [INFO] [stderr] 418 | pub fn new<'a>(flex: F, ty: Ty) -> Slot { [INFO] [stderr] | ^^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::extra_unused_lifetimes)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/ty/slot.rs:438:5 [INFO] [stderr] | [INFO] [stderr] 438 | / pub fn unlift<'a>(&'a self) -> UnliftedSlot<'a> { [INFO] [stderr] 439 | | self.0.unlift() [INFO] [stderr] 440 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ty::seq::TySeq` [INFO] [stderr] --> src/ty/seq.rs:167:13 [INFO] [stderr] | [INFO] [stderr] 167 | / pub fn new($($span: $spanty,)*) -> $tyseq { [INFO] [stderr] 168 | | $tyseq { head: Vec::new(), tail: None, $($span: $span,)* } [INFO] [stderr] 169 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 593 | / define_tyseq! { [INFO] [stderr] 594 | | /// A sequence of value types. [INFO] [stderr] 595 | | type TySeq { [INFO] [stderr] 596 | | t = ['a] T<'a>; [INFO] [stderr] ... | [INFO] [stderr] 629 | | } [INFO] [stderr] 630 | | } [INFO] [stderr] | |_- in this macro invocation [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] 127 | #[derive(Default)] [INFO] [stderr] 128 | pub struct $tyseq { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: defining a method called `into_iter` on this type; consider implementing the `std::iter::IntoIterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/ty/seq.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | / pub fn into_iter(self) -> SeqIter<$ty> { [INFO] [stderr] 222 | | SeqIter { head: self.head.into_iter(), tail: self.tail.map($ty_with_nil) } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 593 | / define_tyseq! { [INFO] [stderr] 594 | | /// A sequence of value types. [INFO] [stderr] 595 | | type TySeq { [INFO] [stderr] 596 | | t = ['a] T<'a>; [INFO] [stderr] ... | [INFO] [stderr] 629 | | } [INFO] [stderr] 630 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::should_implement_trait)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: defining a method called `into_iter` on this type; consider implementing the `std::iter::IntoIterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/ty/seq.rs:221:13 [INFO] [stderr] | [INFO] [stderr] 221 | / pub fn into_iter(self) -> SeqIter<$ty> { [INFO] [stderr] 222 | | SeqIter { head: self.head.into_iter(), tail: self.tail.map($ty_with_nil) } [INFO] [stderr] 223 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 593 | / define_tyseq! { [INFO] [stderr] 594 | | /// A sequence of value types. [INFO] [stderr] 595 | | type TySeq { [INFO] [stderr] 596 | | t = ['a] T<'a>; [INFO] [stderr] ... | [INFO] [stderr] 629 | | } [INFO] [stderr] 630 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: you should consider deriving a `Default` implementation for `ty::seq::SlotSeq` [INFO] [stderr] --> src/ty/seq.rs:414:13 [INFO] [stderr] | [INFO] [stderr] 414 | / pub fn new($($span: $spanty,)*) -> $slotseq { [INFO] [stderr] 415 | | $slotseq { head: Vec::new(), tail: None, $($span: $span,)* } [INFO] [stderr] 416 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [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] 369 | #[derive(Default)] [INFO] [stderr] 370 | pub struct $slotseq { [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:419:59 [INFO] [stderr] | [INFO] [stderr] 419 | $slotseq { head: seq.head.into_iter().map(|t| $ty_to_slot(t)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|t: Ty| Slot::just(t)` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:420:47 [INFO] [stderr] | [INFO] [stderr] 420 | tail: seq.tail.map(|t| $ty_to_slot(t)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|t: Ty| Slot::just(t)` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: defining a method called `into_iter` on this type; consider implementing the `std::iter::IntoIterator` trait or choosing a less ambiguous name [INFO] [stderr] --> src/ty/seq.rs:460:13 [INFO] [stderr] | [INFO] [stderr] 460 | / pub fn into_iter(self) -> SeqIter<$slot> { [INFO] [stderr] 461 | | SeqIter { head: self.head.into_iter(), tail: self.tail.map($slot_with_nil) } [INFO] [stderr] 462 | | } [INFO] [stderr] | |_____________^ [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#should_implement_trait [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:480:58 [INFO] [stderr] | [INFO] [stderr] 480 | $tyseq { head: self.head.into_iter().map(|s| $slot_to_ty(s)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|s: Slot| s.unlift().clone()` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:481:46 [INFO] [stderr] | [INFO] [stderr] 481 | tail: self.tail.map(|s| $slot_to_ty(s)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|s: Slot| s.unlift().clone()` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:661:45 [INFO] [stderr] | [INFO] [stderr] 661 | ty_to_slot = |t: Spanned| t.map(|t| Slot::just(t)); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ help: remove closure as shown: `Slot::just` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:419:59 [INFO] [stderr] | [INFO] [stderr] 419 | $slotseq { head: seq.head.into_iter().map(|t| $ty_to_slot(t)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|t: Spanned| t.map(|t| Slot::just(t))` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:420:47 [INFO] [stderr] | [INFO] [stderr] 420 | tail: seq.tail.map(|t| $ty_to_slot(t)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|t: Spanned| t.map(|t| Slot::just(t))` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:480:58 [INFO] [stderr] | [INFO] [stderr] 480 | $tyseq { head: self.head.into_iter().map(|s| $slot_to_ty(s)).collect(), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|s: Spanned| s.map(|s| s.unlift().clone())` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: redundant closure found [INFO] [stderr] --> src/ty/seq.rs:481:46 [INFO] [stderr] | [INFO] [stderr] 481 | tail: self.tail.map(|s| $slot_to_ty(s)), [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ help: remove closure as shown: `|s: Spanned| s.map(|s| s.unlift().clone())` [INFO] [stderr] ... [INFO] [stderr] 632 | / define_slotseq! { [INFO] [stderr] 633 | | /// A sequence of slot types. [INFO] [stderr] 634 | | type SlotSeq <- TySeq { [INFO] [stderr] 635 | | slot = Slot; [INFO] [stderr] ... | [INFO] [stderr] 670 | | } [INFO] [stderr] 671 | | } [INFO] [stderr] | |_- in this macro invocation [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/tag.rs:199:17 [INFO] [stderr] | [INFO] [stderr] 199 | pub fn name(&self) -> &'static str { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/tag.rs:228:24 [INFO] [stderr] | [INFO] [stderr] 228 | pub fn scope_local(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/tag.rs:247:26 [INFO] [stderr] | [INFO] [stderr] 247 | pub fn needs_subtype(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ty/tag.rs:265:9 [INFO] [stderr] | [INFO] [stderr] 265 | / match *self { [INFO] [stderr] 266 | | Tag::MakeClass(csid) => { [INFO] [stderr] 267 | | write!(f, "({:?})", csid)?; [INFO] [stderr] 268 | | } [INFO] [stderr] 269 | | _ => {} [INFO] [stderr] 270 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = note: #[warn(clippy::single_match)] on by default [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 265 | if let Tag::MakeClass(csid) = *self { [INFO] [stderr] 266 | write!(f, "({:?})", csid)?; [INFO] [stderr] 267 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: you seem to be trying to use match for destructuring a single pattern. Consider using `if let` [INFO] [stderr] --> src/ty/tag.rs:280:9 [INFO] [stderr] | [INFO] [stderr] 280 | / match *self { [INFO] [stderr] 281 | | Tag::MakeClass(csid) => { [INFO] [stderr] 282 | | write!(f, "(")?; [INFO] [stderr] 283 | | st.context.fmt_class_system_name(csid, f, st)?; [INFO] [stderr] ... | [INFO] [stderr] 286 | | _ => {} [INFO] [stderr] 287 | | } [INFO] [stderr] | |_________^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match [INFO] [stderr] help: try this [INFO] [stderr] | [INFO] [stderr] 280 | if let Tag::MakeClass(csid) = *self { [INFO] [stderr] 281 | write!(f, "(")?; [INFO] [stderr] 282 | st.context.fmt_class_system_name(csid, f, st)?; [INFO] [stderr] 283 | write!(f, ")")?; [INFO] [stderr] 284 | } [INFO] [stderr] | [INFO] [stderr] [INFO] [stderr] warning: use of `or` followed by a function call [INFO] [stderr] --> src/ty/mod.rs:293:36 [INFO] [stderr] | [INFO] [stderr] 293 | let tag = ty.tag().or(ty2.tag()); [INFO] [stderr] | ^^^^^^^^^^^^^ help: try this: `or_else(|| ty2.tag())` [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: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:566:27 [INFO] [stderr] | [INFO] [stderr] 566 | pub fn is_dynamic(&self) -> bool { self.intersects(T_DYNAMIC) } [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:568:28 [INFO] [stderr] | [INFO] [stderr] 568 | pub fn is_integral(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:572:27 [INFO] [stderr] | [INFO] [stderr] 572 | pub fn is_numeric(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:576:27 [INFO] [stderr] | [INFO] [stderr] 576 | pub fn is_stringy(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:580:27 [INFO] [stderr] | [INFO] [stderr] 580 | pub fn is_tabular(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:584:28 [INFO] [stderr] | [INFO] [stderr] 584 | pub fn is_callable(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:588:26 [INFO] [stderr] | [INFO] [stderr] 588 | pub fn is_truthy(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:592:25 [INFO] [stderr] | [INFO] [stderr] 592 | pub fn is_falsy(&self) -> bool { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: this argument is passed by reference, but would be more efficient if passed by value [INFO] [stderr] --> src/ty/mod.rs:596:28 [INFO] [stderr] | [INFO] [stderr] 596 | pub fn get_dynamic(&self) -> Option { [INFO] [stderr] | ^^^^^ help: consider passing by value instead: `self` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#trivially_copy_pass_by_ref [INFO] [stderr] [INFO] [stderr] warning: explicit lifetimes given in parameter types where they could be elided (or replaced with `'_` if needed by type declaration) [INFO] [stderr] --> src/env/mod.rs:71:5 [INFO] [stderr] | [INFO] [stderr] 71 | / fn get_bound<'a>(&'a self, lhs: TVar) -> Option<&'a Bound> { [INFO] [stderr] 72 | | let lhs = self.bounds.find(lhs.0 as usize); [INFO] [stderr] 73 | | self.bounds.get(lhs).map(|b| &**b) [INFO] [stderr] 74 | | } [INFO] [stderr] | |_____^ [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/env/mod.rs:514:31 [INFO] [stderr] | [INFO] [stderr] 514 | if let Some(ub) = self.tvar_sub.add_bound(lhs, &rhs).map(|b| b.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.tvar_sub.add_bound(lhs, &rhs).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/env/mod.rs:535:31 [INFO] [stderr] | [INFO] [stderr] 535 | if let Some(lb) = self.tvar_sup.add_bound(lhs, rhs).map(|b| b.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.tvar_sup.add_bound(lhs, rhs).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: You are using an explicit closure for cloning elements [INFO] [stderr] --> src/env/mod.rs:553:27 [INFO] [stderr] | [INFO] [stderr] 553 | if let Some(eb) = self.tvar_eq.add_bound(lhs, &rhs).map(|b| b.clone()) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: Consider calling the dedicated `cloned` method: `self.tvar_eq.add_bound(lhs, &rhs).cloned()` [INFO] [stderr] | [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#map_clone [INFO] [stderr] [INFO] [stderr] warning: the function has a cyclomatic complexity of 26 [INFO] [stderr] --> src/env/mod.rs:772:1 [INFO] [stderr] | [INFO] [stderr] 772 | / fn test_types_tvar() { [INFO] [stderr] 773 | | let mut types = Types::new(Locale::dummy(), Box::new(DummyClassProvider)); [INFO] [stderr] 774 | | [INFO] [stderr] 775 | | { // idempotency of bounds [INFO] [stderr] ... | [INFO] [stderr] 830 | | } [INFO] [stderr] 831 | | } [INFO] [stderr] | |_^ [INFO] [stderr] | [INFO] [stderr] = help: you could split it up into multiple smaller functions [INFO] [stderr] = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cyclomatic_complexity [INFO] [stderr] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 16.88s [INFO] running `"docker" "inspect" "4368a2591bef5e321087800440e920046abb6837f8b1295e50295211edcc6d6e"` [INFO] running `"docker" "rm" "-f" "4368a2591bef5e321087800440e920046abb6837f8b1295e50295211edcc6d6e"` [INFO] [stdout] 4368a2591bef5e321087800440e920046abb6837f8b1295e50295211edcc6d6e