Commit graph

12 commits

Author SHA1 Message Date
Esteban Küber
39d73d5bbb Use MIR body to identify more "default equivalent" calls
When looking for `Default` impls that could be derived, we look at the
body of their `fn default()` and if it is an fn call or literal we check
if they are equivalent to what `#[derive(Default)]` would have used.

Now, when checking those fn calls in the `fn default()` body, we also
compare against the corresponding type's `Default::default` body to see
if our call is equivalent to that one.

For example, given

```rust
struct S;

impl S {
    fn new() -> S { S }
}

impl Default for S {
    fn default() -> S { S::new() }
}
```

`<S as Default>::default()` and `S::new()` are considered equivalent.
Given that, if the user also writes

```rust
struct R {
    s: S,
}

impl Default for R {
    fn default() -> R {
        R { s: S::new() }
    }
}
```

the `derivable_impls` lint will now trigger.
2025-02-11 02:59:06 +00:00
Esteban Küber
cc9d9ccd11 Filter empty lines, comments and delimiters from previous to last multiline span rendering 2024-12-12 23:36:27 +00:00
Philipp Krones
d58b911e01 Merge commit 'ff4a26d442' into clippy-subtree-update 2024-11-28 19:38:59 +01:00
Philipp Krones
4e6851e50b Merge commit '37f4fbb929' into clippy-subtree-update 2024-07-25 18:29:17 +02:00
Philipp Krones
7be6e2178e Merge commit '10136170fe' into clippy-subtree-update 2024-02-27 15:50:17 +01:00
Urgau
a86e758228 Adjust clippy tests with new rustc help suggestion for lints 2023-09-04 14:22:02 +02:00
Philipp Krones
cc61aeea54 Merge commit '080b587854' into clippyup 2023-08-24 21:32:12 +02:00
Esteban Küber
7a0fb902bc Tweak output for 'add line' suggestion 2023-04-12 22:50:10 +00:00
Philipp Krones
d21616737b Merge commit '7f27e2e74e' into clippyup 2023-01-12 19:48:13 +01:00
David Koloski
4d015293d1 Merge commit '7248d06384' into sync-from-clippy 2022-09-21 13:13:27 -04:00
flip1995
5cf4984872 Merge commit 'b7f3f7f608' into clippyup 2021-10-07 11:21:30 +02:00
flip1995
091ed44b50 Merge commit '27afd6ade4' into clippyup 2021-09-08 16:31:47 +02:00