diff options
author | Nathan James <n.james93@hotmail.co.uk> | 2020-03-10 13:41:01 +0000 |
---|---|---|
committer | Nathan James <n.james93@hotmail.co.uk> | 2020-03-10 17:44:10 +0000 |
commit | 66945b62f42f0911a328a354cbc7db40b05b76eb (patch) | |
tree | 3fb31a2ce3e37ee394143eaf2dc7a12a13c82642 /clang | |
parent | d67cf7a0a970df6e69db437514bf61a2ab283e67 (diff) | |
download | llvm-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
Diffstat (limited to 'clang')
-rw-r--r-- | clang/include/clang/Basic/Diagnostic.h | 24 |
1 files changed, 24 insertions, 0 deletions
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>; |