aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan James <n.james93@hotmail.co.uk>2020-03-10 13:41:01 +0000
committerNathan James <n.james93@hotmail.co.uk>2020-03-10 17:44:10 +0000
commit66945b62f42f0911a328a354cbc7db40b05b76eb (patch)
tree3fb31a2ce3e37ee394143eaf2dc7a12a13c82642
parentd67cf7a0a970df6e69db437514bf61a2ab283e67 (diff)
downloadllvm-66945b62f42f0911a328a354cbc7db40b05b76eb.zip
llvm-66945b62f42f0911a328a354cbc7db40b05b76eb.tar.gz
llvm-66945b62f42f0911a328a354cbc7db40b05b76eb.tar.bz2
Add Optional overload to DiagnosticBuilder operator <<
Reviewers: aaron.ballman, gribozavr2, lebedev.ri Reviewed By: gribozavr2 Subscribers: wuzish, nemanjai, kbarton, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D75714
-rw-r--r--clang-tools-extra/clang-tidy/abseil/StringFindStartswithCheck.cpp5
-rw-r--r--clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp4
-rw-r--r--clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp11
-rw-r--r--clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp8
-rw-r--r--clang/include/clang/Basic/Diagnostic.h24
5 files changed, 33 insertions, 19 deletions
diff --git a/clang-tools-extra/clang-tidy/abseil/StringFindStartswithCheck.cpp b/clang-tools-extra/clang-tidy/abseil/StringFindStartswithCheck.cpp
index 7c8f4d6..3f0ca4a 100644
--- a/clang-tools-extra/clang-tidy/abseil/StringFindStartswithCheck.cpp
+++ b/clang-tools-extra/clang-tidy/abseil/StringFindStartswithCheck.cpp
@@ -105,12 +105,9 @@ void StringFindStartswithCheck::check(const MatchFinder::MatchResult &Result) {
// Create a preprocessor #include FixIt hint (CreateIncludeInsertion checks
// whether this already exists).
- auto IncludeHint = IncludeInserter->CreateIncludeInsertion(
+ Diagnostic << IncludeInserter->CreateIncludeInsertion(
Source.getFileID(ComparisonExpr->getBeginLoc()), AbseilStringsMatchHeader,
false);
- if (IncludeHint) {
- Diagnostic << *IncludeHint;
- }
}
void StringFindStartswithCheck::registerPPCallbacks(
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
index a5d9275..f616efb 100644
--- a/clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/InitVariablesCheck.cpp
@@ -96,10 +96,8 @@ void InitVariablesCheck::check(const MatchFinder::MatchResult &Result) {
MatchedDecl->getName().size()),
InitializationString);
if (AddMathInclude) {
- auto IncludeHint = IncludeInserter->CreateIncludeInsertion(
+ Diagnostic << IncludeInserter->CreateIncludeInsertion(
Source.getFileID(MatchedDecl->getBeginLoc()), MathHeader, false);
- if (IncludeHint)
- Diagnostic << *IncludeHint;
}
}
}
diff --git a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp
index d8997f8..56a8a81 100644
--- a/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp
+++ b/clang-tools-extra/clang-tidy/cppcoreguidelines/ProBoundsConstantArrayIndexCheck.cpp
@@ -86,13 +86,10 @@ void ProBoundsConstantArrayIndexCheck::check(
SourceRange(BaseRange.getEnd().getLocWithOffset(1),
IndexRange.getBegin().getLocWithOffset(-1)),
", ")
- << FixItHint::CreateReplacement(Matched->getEndLoc(), ")");
-
- Optional<FixItHint> Insertion = Inserter->CreateIncludeInsertion(
- Result.SourceManager->getMainFileID(), GslHeader,
- /*IsAngled=*/false);
- if (Insertion)
- Diag << Insertion.getValue();
+ << FixItHint::CreateReplacement(Matched->getEndLoc(), ")")
+ << Inserter->CreateIncludeInsertion(
+ Result.SourceManager->getMainFileID(), GslHeader,
+ /*IsAngled=*/false);
}
return;
}
diff --git a/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp b/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
index b23ef6d..3466a8a 100644
--- a/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
+++ b/clang-tools-extra/clang-tidy/modernize/MakeSmartPtrCheck.cpp
@@ -429,11 +429,9 @@ void MakeSmartPtrCheck::insertHeader(DiagnosticBuilder &Diag, FileID FD) {
if (MakeSmartPtrFunctionHeader.empty()) {
return;
}
- if (auto IncludeFixit = Inserter->CreateIncludeInsertion(
- FD, MakeSmartPtrFunctionHeader,
- /*IsAngled=*/MakeSmartPtrFunctionHeader == StdMemoryHeader)) {
- Diag << *IncludeFixit;
- }
+ Diag << Inserter->CreateIncludeInsertion(
+ FD, MakeSmartPtrFunctionHeader,
+ /*IsAngled=*/MakeSmartPtrFunctionHeader == StdMemoryHeader);
}
} // namespace modernize
diff --git a/clang/include/clang/Basic/Diagnostic.h b/clang/include/clang/Basic/Diagnostic.h
index 6bc8a14..c55b180 100644
--- a/clang/include/clang/Basic/Diagnostic.h
+++ b/clang/include/clang/Basic/Diagnostic.h
@@ -21,6 +21,7 @@
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/IntrusiveRefCntPtr.h"
+#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/iterator_range.h"
@@ -1288,6 +1289,29 @@ inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB,
return DB;
}
+inline const DiagnosticBuilder &
+operator<<(const DiagnosticBuilder &DB,
+ const llvm::Optional<SourceRange> &Opt) {
+ if (Opt)
+ DB << *Opt;
+ return DB;
+}
+
+inline const DiagnosticBuilder &
+operator<<(const DiagnosticBuilder &DB,
+ const llvm::Optional<CharSourceRange> &Opt) {
+ if (Opt)
+ DB << *Opt;
+ return DB;
+}
+
+inline const DiagnosticBuilder &
+operator<<(const DiagnosticBuilder &DB, const llvm::Optional<FixItHint> &Opt) {
+ if (Opt)
+ DB << *Opt;
+ return DB;
+}
+
/// A nullability kind paired with a bit indicating whether it used a
/// context-sensitive keyword.
using DiagNullabilityKind = std::pair<NullabilityKind, bool>;