Skip to content

errors after cargo clippy --fix #88333

Closed
rust-lang/rust-clippy
#7602
@sourcefrog

Description

@sourcefrog

With clippy 0.1.56 (b03ccac 2021-08-24) and rustc 1.56.0-nightly (b03ccace5 2021-08-24)
I ran cargo clippy --fix in a checkout of sourcefrog/conserve@86137c3

and it asks me to file a bug here.

I'll attach a file of the changes made.
20210825-conserve-clippy.diff.gz

[I] bobcat ~/src/conserve> cargo clippy --fix
    Checking conserve v0.6.15-pre (/home/mbp/src/conserve)
       Fixed src/band.rs (1 fix)
       Fixed src/restore.rs (1 fix)
       Fixed src/index.rs (2 fixes)
       Fixed src/backup.rs (3 fixes)
       Fixed src/show.rs (1 fix)
       Fixed src/validate.rs (1 fix)
       Fixed src/archive.rs (4 fixes)
       Fixed src/transport.rs (2 fixes)
       Fixed src/test_fixtures.rs (2 fixes)
       Fixed src/blockdir.rs (2 fixes)
       Fixed src/transport/local.rs (1 fix)
       Fixed tests/cli/main.rs (1 fix)
warning: failed to automatically apply fixes suggested by rustc to crate `conserve`

after fixes were automatically applied the compiler reported errors within these files:

  * src/band.rs
  * src/index.rs
  * src/transport/local.rs

This likely indicates a bug in either rustc or cargo itself,
and we would appreciate a bug report! You're likely to see 
a number of compiler warnings after this message which cargo
attempted to fix but failed. If you could open an issue at
https://github.com/rust-lang/rust/issues
quoting the full output of this command we'd be very appreciative!
Note that you may be able to make some more progress in the near-term
fixing code with the `--broken-code` flag

The following errors were reported:
warning: used `assert_eq!` with a literal bool
   --> src/band.rs:292:9
    |
292 |         assert_eq!(info.is_closed, true);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = note: `#[warn(clippy::bool_assert_comparison)]` on by default
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
   --> src/band.rs:306:9
    |
306 |         assert_eq!(af.transport().exists("b0000").unwrap(), false);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
   --> src/transport/local.rs:225:9
    |
225 |         assert_eq!(transport.exists("root file").unwrap(), true);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
   --> src/transport/local.rs:226:9
    |
226 |         assert_eq!(transport.exists("nuh-uh").unwrap(), false);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

error[E0282]: type annotations needed
   --> src/index.rs:658:14
    |
658 |             .map(|entry| entry.apath.into()).next().is_none());
    |              ^^^         ------------------ this method call resolves to `T`
    |              |
    |              cannot infer type for type parameter `B` declared on the associated function `map`

error: aborting due to previous error; 4 warnings emitted

For more information about this error, try `rustc --explain E0282`.
Original diagnostics will follow.

warning: used `assert_eq!` with a literal bool
   --> src/band.rs:292:9
    |
292 |         assert_eq!(info.is_closed, true);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = note: `#[warn(clippy::bool_assert_comparison)]` on by default
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
   --> src/band.rs:306:9
    |
306 |         assert_eq!(af.transport().exists("b0000").unwrap(), false);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
   --> src/transport/local.rs:225:9
    |
225 |         assert_eq!(transport.exists("root file").unwrap(), true);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
   --> src/transport/local.rs:226:9
    |
226 |         assert_eq!(transport.exists("nuh-uh").unwrap(), false);
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

       Fixed src/bin/conserve.rs (6 fixes)
warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/archive.rs:461:43
    |
461 |         let result = Archive::create_path(&temp.path());
    |                                           ^^^^^^^^^^^^ help: change this to: `temp.path()`
    |
    = note: `#[warn(clippy::needless_borrow)]` on by default
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&[u8]`) that is immediately dereferenced by the compiler
  --> src/compress/snappy.rs:97:44
   |
97 |         assert_eq!(decompressor.decompress(&comp).unwrap(), b"hello world");
   |                                            ^^^^^ help: change this to: `comp`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&[u8]`) that is immediately dereferenced by the compiler
   --> src/compress/snappy.rs:102:44
    |
102 |         assert_eq!(decompressor.decompress(&comp).unwrap(), &long_input[..]);
    |                                            ^^^^^ help: change this to: `comp`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:595:43
    |
595 |         let mut it = IndexRead::open_path(&testdir.path()).iter_entries();
    |                                           ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:611:47
    |
611 |         let index_read = IndexRead::open_path(&testdir.path());
    |                                               ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:618:34
    |
618 |             IndexRead::open_path(&testdir.path()).iter_hunks().collect();
    |                                  ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: avoid using `collect()` when not needed
   --> src/index.rs:658:14
    |
658 |             .collect();
    |              ^^^^^^^
659 |         assert!(names.is_empty());
    |                 ---------------- the iterator could be used here instead
    |
    = note: `#[warn(clippy::needless_collect)]` on by default
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_collect
help: check if the original Iterator has anything instead of collecting it and seeing if it's empty
    |
653 ~         
654 ~         assert!(index_read
655 +             .iter_hunks()
656 +             .advance_to_after(&"/subdir".into())
657 +             .flatten()
658 ~             .map(|entry| entry.apath.into()).next().is_none());
    |

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:644:47
    |
644 |         let index_read = IndexRead::open_path(&testdir.path());
    |                                               ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:733:43
    |
733 |         let mut it = IndexRead::open_path(&testdir.path()).iter_entries();
    |                                           ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:739:43
    |
739 |         let mut it = IndexRead::open_path(&testdir.path()).iter_entries();
    |                                           ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:745:43
    |
745 |         let mut it = IndexRead::open_path(&testdir.path()).iter_entries();
    |                                           ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:751:43
    |
751 |         let mut it = IndexRead::open_path(&testdir.path()).iter_entries();
    |                                           ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/index.rs:768:47
    |
768 |         let read_index = IndexRead::open_path(&testdir.path());
    |                                               ^^^^^^^^^^^^^^^ help: change this to: `testdir.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
  --> src/jsonio.rs:83:45
   |
83 |         let transport = LocalTransport::new(&temp.path());
   |                                             ^^^^^^^^^^^^ help: change this to: `temp.path()`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

       Fixed tests/api/transport.rs (1 fix)
       Fixed tests/api/diff.rs (1 fix)
       Fixed tests/api/old_archives.rs (3 fixes)
       Fixed tests/api/blockhash.rs (1 fix)
       Fixed tests/api/restore.rs (6 fixes)
       Fixed tests/api/backup.rs (5 fixes)
warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/stitch.rs:211:42
    |
211 |         let archive = Archive::open_path(&af.path())?;
    |                                          ^^^^^^^^^^ help: change this to: `af.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&str`) that is immediately dereferenced by the compiler
   --> src/transport/local.rs:159:29
    |
159 |         transport.read_file(&filename, &mut buf).unwrap();
    |                             ^^^^^^^^^ help: change this to: `filename`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&str`) that is immediately dereferenced by the compiler
   --> src/transport/local.rs:174:39
    |
174 |         assert_eq!(transport.metadata(&filename).unwrap(), Metadata { len: 24 });
    |                                       ^^^^^^^^^ help: change this to: `filename`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&str`) that is immediately dereferenced by the compiler
   --> src/transport/local.rs:186:29
    |
186 |         transport.read_file(&filename, &mut buf).unwrap();
    |                             ^^^^^^^^^ help: change this to: `filename`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/transport/local.rs:204:45
    |
204 |         let transport = LocalTransport::new(&temp.path());
    |                                             ^^^^^^^^^^^^ help: change this to: `temp.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/transport/local.rs:248:45
    |
248 |         let transport = LocalTransport::new(&temp.path());
    |                                             ^^^^^^^^^^^^ help: change this to: `temp.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/transport/local.rs:266:45
    |
266 |         let transport = LocalTransport::new(&temp.path());
    |                                             ^^^^^^^^^^^^ help: change this to: `temp.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/transport/local.rs:278:45
    |
278 |         let transport = LocalTransport::new(&temp.path());
    |                                             ^^^^^^^^^^^^ help: change this to: `temp.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: this expression borrows a reference (`&std::path::Path`) that is immediately dereferenced by the compiler
   --> src/transport/local.rs:299:45
    |
299 |         let transport = LocalTransport::new(&temp.path());
    |                                             ^^^^^^^^^^^^ help: change this to: `temp.path()`
    |
    = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow

warning: used `assert_eq!` with a literal bool
  --> tests/api/backup.rs:46:5
   |
46 |     assert_eq!(archive.band_exists(&BandId::zero()).unwrap(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
   |
   = note: `#[warn(clippy::bool_assert_comparison)]` on by default
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
  --> tests/api/backup.rs:47:5
   |
47 |     assert_eq!(archive.band_is_closed(&BandId::zero()).unwrap(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
  --> tests/api/backup.rs:48:5
   |
48 |     assert_eq!(archive.band_exists(&BandId::new(&[1])).unwrap(), false);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
  --> tests/api/backup.rs:88:5
   |
88 |     assert_eq!(band_info.is_closed, true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
  --> tests/api/damaged.rs:25:5
   |
25 |     assert_eq!(validate_stats.has_problems(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: used `assert_eq!` with a literal bool
  --> tests/api/damaged.rs:37:5
   |
37 |     assert_eq!(validate_stats.has_problems(), true);
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `assert!(..)`
   |
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#bool_assert_comparison

warning: struct update has no effect, all the fields in the struct have already been specified
  --> tests/api/gc.rs:63:11
   |
63 |         ..Default::default()
   |           ^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(clippy::needless_update)]` on by default
   = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_update

warning: `conserve` (lib test) generated 27 warnings
warning: `conserve` (test "api") generated 7 warnings
    Finished dev [unoptimized + debuginfo] target(s) in 2.56s

Meta

rustc --version --verbose:

rustc 1.56.0-nightly (b03ccace5 2021-08-24)
binary: rustc
commit-hash: b03ccace573bb91e27625c190a0f7807045a1012
commit-date: 2021-08-24
host: x86_64-unknown-linux-gnu
release: 1.56.0-nightly
LLVM version: 13.0.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions