diff options
author | Haojian Wu <hokein@google.com> | 2019-04-17 12:53:59 +0000 |
---|---|---|
committer | Haojian Wu <hokein@google.com> | 2019-04-17 12:53:59 +0000 |
commit | f2879d8a4877eafcdb12c852030746d175f8abbd (patch) | |
tree | a0a0b22753ec03cdf48709cd2e70c6c39b0ef627 /clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp | |
parent | 641caa57cc14816d6bed71a08b810ede37fdc794 (diff) | |
download | bcm5719-llvm-f2879d8a4877eafcdb12c852030746d175f8abbd.tar.gz bcm5719-llvm-f2879d8a4877eafcdb12c852030746d175f8abbd.zip |
[clang-tidy] Add fix descriptions to clang-tidy checks.
Summary:
Motivation/Context: in the code review system integrating with clang-tidy,
clang-tidy doesn't provide a human-readable description of the fix. Usually
developers have to preview a code diff (before vs after apply the fix) to
understand what the fix does before applying a fix.
This patch proposes that each clang-tidy check provides a short and
actional fix description that can be shown in the UI, so that users can know
what the fix does without previewing diff.
This patch extends clang-tidy framework to support fix descriptions (will add implementations for
existing checks in the future). Fix descriptions and fixes are emitted via diagnostic::Note (rather than
attaching the main warning diagnostic).
Before this patch:
```
void MyCheck::check(...) {
...
diag(loc, "my check warning") << FixtItHint::CreateReplacement(...);
}
```
After:
```
void MyCheck::check(...) {
...
diag(loc, "my check warning"); // Emit a check warning
diag(loc, "fix description", DiagnosticIDs::Note) << FixtItHint::CreateReplacement(...); // Emit a diagnostic note and a fix
}
```
Reviewers: sammccall, alexfh
Reviewed By: alexfh
Subscribers: MyDeveloperDay, Eugene.Zelenko, aaron.ballman, JonasToth, xazax.hun, jdoerfert, cfe-commits
Tags: #clang-tools-extra, #clang
Differential Revision: https://reviews.llvm.org/D59932
llvm-svn: 358576
Diffstat (limited to 'clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp b/clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp index 532dbfd4cdc..3dabca917ae 100644 --- a/clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp +++ b/clang-tools-extra/clang-tidy/misc/UnusedUsingDeclsCheck.cpp @@ -154,7 +154,10 @@ void UnusedUsingDeclsCheck::onEndOfTranslationUnit() { for (const auto &Context : Contexts) { if (!Context.IsUsed) { diag(Context.FoundUsingDecl->getLocation(), "using decl %0 is unused") - << Context.FoundUsingDecl + << Context.FoundUsingDecl; + // Emit a fix and a fix description of the check; + diag(Context.FoundUsingDecl->getLocation(), + /*FixDescription=*/"remove the using", DiagnosticIDs::Note) << FixItHint::CreateRemoval(Context.UsingDeclRange); } } |