diff options
author | Sam McCall <sam.mccall@gmail.com> | 2023-05-02 16:22:40 +0200 |
---|---|---|
committer | Sam McCall <sam.mccall@gmail.com> | 2023-05-04 23:24:51 +0200 |
commit | 0a532207b8696d81e46017f444bd2257347f129b (patch) | |
tree | 3270ae52950c68c2ce55266f3170de31a3aa01df /clang/lib/Basic/IdentifierTable.cpp | |
parent | f031fc35716cd48c7b1eb32604dbba45d99c5fef (diff) | |
download | llvm-0a532207b8696d81e46017f444bd2257347f129b.zip llvm-0a532207b8696d81e46017f444bd2257347f129b.tar.gz llvm-0a532207b8696d81e46017f444bd2257347f129b.tar.bz2 |
Give NullabilityKind a printing operator<<
This is more useful for debug/test than getNullabilitySpelling:
- default form has uglifying underscores
- non-default form crashes on NullableResult
- both return unhelpfully verbose strings for Unspecified
- operator<< works with gtest, formatv, etc
Differential Revision: https://reviews.llvm.org/D149650
Diffstat (limited to 'clang/lib/Basic/IdentifierTable.cpp')
-rw-r--r-- | clang/lib/Basic/IdentifierTable.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/clang/lib/Basic/IdentifierTable.cpp b/clang/lib/Basic/IdentifierTable.cpp index 97dc5cd..9be42c0 100644 --- a/clang/lib/Basic/IdentifierTable.cpp +++ b/clang/lib/Basic/IdentifierTable.cpp @@ -849,6 +849,20 @@ StringRef clang::getNullabilitySpelling(NullabilityKind kind, llvm_unreachable("Unknown nullability kind."); } +llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, NullabilityKind NK) { + switch (NK) { + case NullabilityKind::NonNull: + return OS << "NonNull"; + case NullabilityKind::Nullable: + return OS << "Nullable"; + case NullabilityKind::NullableResult: + return OS << "NullableResult"; + case NullabilityKind::Unspecified: + return OS << "Unspecified"; + } + llvm_unreachable("Unknown nullability kind."); +} + diag::kind IdentifierTable::getFutureCompatDiagKind(const IdentifierInfo &II, const LangOptions &LangOpts) { |