diff options
author | Jonathan Roelofs <jroelofs@jroelofs.com> | 2020-03-10 08:34:34 -0600 |
---|---|---|
committer | Jonathan Roelofs <jroelofs@jroelofs.com> | 2020-03-12 09:59:28 -0600 |
commit | 2c9cf9f4ddd01ae9eb47522266a6343104f9d0b5 (patch) | |
tree | 8de7974c7d2fc3e79e96f41df49e99d66585bd61 /clang-tools-extra/clang-tidy/utils/FileExtensionsUtils.cpp | |
parent | d6883126603393a96f75f6392243fbda394c7d7a (diff) | |
download | llvm-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.cpp | 15 |
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 |