<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/61416>61416</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] add_new_check.py creates a faulty FixItHint
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          RedPenguin100
      </td>
    </tr>
</table>

<pre>
    When the `add_new_check.py` script is invoked to create a new vanilla custom clang-tidy check, the following code is emitted inside the check override function:

```cpp
 diag(MatchedDecl->getLocation(), "function %0 is insufficiently awesome")
      << MatchedDecl;
  diag(MatchedDecl->getLocation(), "insert 'awesome'", DiagnosticIDs::Note)
      << FixItHint::CreateInsertion(MatchedDecl->getLocation(), "awesome_");
```

Running clang tidy with `--fix` won't fix the function name.
Changing the code to the following will work:

```cpp
  diag(MatchedDecl->getLocation(), "function %0 is insufficiently awesome")
      << MatchedDecl
      << FixItHint::CreateInsertion(MatchedDecl->getLocation(), "awesome_");
 diag(MatchedDecl->getLocation(), "insert 'awesome'", DiagnosticIDs::Note);
```

I'm not sure why but I think the reason for this is that the FixItHint comes after a `DiagnosticsIDs::Note` which possibly prevents fixes afterwards. Also removing the last line altogether might work, but I'm not sure how the mainteners want this to look like.

I hope I didn't break too many rules, this is my first time posting, was trying to understand why this isn't working for way too long 

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzEVV2v4jYQ_TXmZQQKDh_hIQ93oahIbVXtSx-vHGeSTHFsZE_Izb-v7MC9u6uqHy-7CIHkeM6cM-fAqBCotYil2H4S29NCDdw5X37G-ne07UB2nWWLytVT-UeHFrhDELtM1fWrxfFVd6ivq9skdhkE7enGQAHI3t0Va2AH2qNiBAUWR7grS8Yo0ENg14M2yrZLpnqChCPkMeE3zhg3km1BuxojIPbEjDWQDVRjupQqwN3R-3jUDFYzOSvyF5GdRPb83GXzW99u8wnUpFohi18V6w7rE2qzFPlPLfIvTqsEIQshD5GMkPKJC0Jus1lbGJqGNKFlM4EaMbgehZSxZu6QXiI_ivwIX7QR-afnhf_HgWxAzyDk_r3bPjU8wolUa11g0pdTiNrzl98c499zOdPbhX8my_PFY7LmksDnlv-Rz4PF60P0U9b7rL804PNgbXIyeg3J65G4ixlaLht6i8EZI_6eoaG32f_nzK3qcTXjHDtl2wiUvI-xYPdNWEYyBkbnr_-egR8Ygu9uy3cJ2z9m4CLkvgfrGMLgEcZugmpguAB3ZK_JRY8qOAuN8_EwxBlzpzg9e58PaNdjANUwelAxQh-MwteUYqo60h3cXAhUmQluHu9oOcSUPUFG5euwghcTHHjs3f0ZMKMCgyGLoAy7FrlDDz21Hc8Bk8dZwdfCOjem6l6RZbToA4zK8qyIHRjnrmDo-sz0YzrQuRvCBWqq599B5VFdgZ2DXtkJ_GAwzP-N82T6CRrygYGpx6iQybbxwqgCsJ-SCgeDrdEHVrZOI39Uzy2iingtDnxUU2pmnG1h5rSoy7w-5Ae1wHK92xeFLLJ1sehKVWw2umqyYpfl-abSlc73RVWo_HDY7vdFtaBSZjLP8vVGrrPdtlhhpRqZH3CfbSslt7nYZNgrMitj7v3K-XZBIQxY7tab9W5hVIUmpF0kZVwZ6WHM3_a08GWsWVZDG8QmMxQ4fKAwsUlL7GOriO0Jvl1Uj4UUQEGjBsPTR7wWgzdlx3xLQZJnIc8tcTdUK-16Ic-x1eNrefPuT9Qs5DkRDEKek4C_AgAA___-01Ke">