aboutsummaryrefslogtreecommitdiff
path: root/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
diff options
context:
space:
mode:
authorJonathan Roelofs <jroelofs@jroelofs.com>2020-03-10 08:34:34 -0600
committerJonathan Roelofs <jroelofs@jroelofs.com>2020-03-12 09:59:28 -0600
commit2c9cf9f4ddd01ae9eb47522266a6343104f9d0b5 (patch)
tree8de7974c7d2fc3e79e96f41df49e99d66585bd61 /clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
parentd6883126603393a96f75f6392243fbda394c7d7a (diff)
downloadllvm-2c9cf9f4ddd01ae9eb47522266a6343104f9d0b5.zip
llvm-2c9cf9f4ddd01ae9eb47522266a6343104f9d0b5.tar.gz
llvm-2c9cf9f4ddd01ae9eb47522266a6343104f9d0b5.tar.bz2
[clang-tidy] New check: bugprone-suspicious-include
Detects and fixes suspicious code like: `#include "foo.cpp"`. Inspired by: https://twitter.com/lefticus/status/1228458240364687360?s=20 https://reviews.llvm.org/D74669
Diffstat (limited to 'clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp')
-rw-r--r--clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp b/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
index d6f4b2a..4eaf8bc 100644
--- a/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
+++ b/clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp
@@ -53,13 +53,20 @@ bool parseFileExtensions(StringRef AllFileExtensions,
return true;
}
-bool isFileExtension(StringRef FileName,
- const FileExtensionsSet &FileExtensions) {
+llvm::Optional<StringRef>
+getFileExtension(StringRef FileName, const FileExtensionsSet &FileExtensions) {
StringRef Extension = llvm::sys::path::extension(FileName);
if (Extension.empty())
- return false;
+ return llvm::None;
// Skip "." prefix.
- return FileExtensions.count(Extension.substr(1)) > 0;
+ if (!FileExtensions.count(Extension.substr(1)))
+ return llvm::None;
+ return Extension;
+}
+
+bool isFileExtension(StringRef FileName,
+ const FileExtensionsSet &FileExtensions) {
+ return getFileExtension(FileName, FileExtensions).hasValue();
}
} // namespace utils