Fix false positive in PartialEq check in unconditional_recursion lint#12137
Conversation
0cda951 to
1326672
Compare
|
Thank you! @bors r+ |
|
☀️ Test successful - checks-action_dev_test, checks-action_remark_test, checks-action_test |
1 similar comment
|
☀️ Test successful - checks-action_dev_test, checks-action_remark_test, checks-action_test |
|
@GuillaumeGomez is this fix supposed to already have been shipped in the most recent nightly |
|
It's synced every 15 days. I thin next sync is in ~10 days. If you want a faster sync, please open an issue so someone can do it. |
Good to know! This is fine for me, I just wanted to know if I am running into yet another case that has not yet been covered and should therefore be reported. :) |
|
Don't hesitate to add a new test if none of the existing ones look like yours. ;) |
|
Will do as soon as such a situation arises. :) |
The `suspicious_open_options` lint [0] warns that the truncation behaviour should be made explicit when creating new files. We also set `create_new(true)`, which ensures that a new file will *always* be created so we should simply drop `create(true)` since it has no effect anyway: "If `.create_new(true)` is set, `.create()` and `.truncate()` are ignored." [1] The `unconditional_recursion` lint [2] also emits a warning but that's a false positive and should already be fixed in nightly (see [3] for a very similar case and [4] for the PR that should fix it). In our case we're comparing tuples with just two fields of the `Package` structure so it isn't recursive. [0]: https://rust-lang.github.io/rust-clippy/master/index.html#/suspicious_open_options [1]: https://docs.rs/tokio/1.34.0/tokio/fs/struct.OpenOptions.html#method.create_new [2]: https://rust-lang.github.io/rust-clippy/master/index.html#/unconditional_recursion [3]: rust-lang/rust-clippy#12133 [4]: rust-lang/rust-clippy#12137
The `suspicious_open_options` lint [0] warns that the truncation behaviour should be made explicit when creating new files. We also set `create_new(true)`, which ensures that a new file will *always* be created so we should simply drop `create(true)` since it has no effect anyway: "If `.create_new(true)` is set, `.create()` and `.truncate()` are ignored." [1] The `unconditional_recursion` lint [2] also emits a warning but that's a false positive and should already be fixed in nightly (see [3] for a very similar case and [4] for the PR that should fix it). In our case we're comparing tuples with just two fields of the `Package` structure so it isn't recursive. [0]: https://rust-lang.github.io/rust-clippy/master/index.html#/suspicious_open_options [1]: https://docs.rs/tokio/1.34.0/tokio/fs/struct.OpenOptions.html#method.create_new [2]: https://rust-lang.github.io/rust-clippy/master/index.html#/unconditional_recursion [3]: rust-lang/rust-clippy#12133 [4]: rust-lang/rust-clippy#12137 Signed-off-by: Michael Weiss <michael.weiss@eviden.com>
The `suspicious_open_options` lint [0] warns that the truncation behaviour should be made explicit when creating new files. We also set `create_new(true)`, which ensures that a new file will *always* be created so we should simply drop `create(true)` since it has no effect anyway: "If `.create_new(true)` is set, `.create()` and `.truncate()` are ignored." [1] The `unconditional_recursion` lint [2] also emits a warning but that's a false positive and should already be fixed in nightly (see [3] for a very similar case and [4] for the PR that should fix it). In our case we're comparing tuples with just two fields of the `Package` structure so it isn't recursive. [0]: https://rust-lang.github.io/rust-clippy/master/index.html#/suspicious_open_options [1]: https://docs.rs/tokio/1.34.0/tokio/fs/struct.OpenOptions.html#method.create_new [2]: https://rust-lang.github.io/rust-clippy/master/index.html#/unconditional_recursion [3]: rust-lang/rust-clippy#12133 [4]: rust-lang/rust-clippy#12137 Signed-off-by: Michael Weiss <michael.weiss@eviden.com>
Fixes #12133.
We needed to check for the type of the previous element
in case it's a field.EDIT: After some extra thoughts, no need to check if it's a field, just if it's the same type as
Self.r? @llogiq
changelog: Fix false positive in
PartialEqcheck inunconditional_recursionlint