mirror of
https://github.com/capstone-engine/llvm-capstone.git
synced 2025-01-03 22:41:47 +00:00
[clang-format] Replace unordered_set with an array
Summary: This replaces an unordered_set from r322690 with an array and binary search. Reviewers: bkramer, benhamilton Reviewed By: bkramer, benhamilton Subscribers: jolesiak, benhamilton, klimek, cfe-commits Differential Revision: https://reviews.llvm.org/D42189 llvm-svn: 322749
This commit is contained in:
parent
c9dc7b451b
commit
8e21678d5b
@ -41,7 +41,6 @@
|
||||
#include <algorithm>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <unordered_set>
|
||||
|
||||
#define DEBUG_TYPE "format-formatter"
|
||||
|
||||
@ -50,16 +49,6 @@ using clang::format::FormatStyle;
|
||||
LLVM_YAML_IS_SEQUENCE_VECTOR(clang::format::FormatStyle::IncludeCategory)
|
||||
LLVM_YAML_IS_SEQUENCE_VECTOR(clang::format::FormatStyle::RawStringFormat)
|
||||
|
||||
namespace std {
|
||||
// Allow using StringRef in std::unordered_set.
|
||||
template <> struct hash<llvm::StringRef> {
|
||||
public:
|
||||
size_t operator()(const llvm::StringRef &s) const {
|
||||
return llvm::hash_value(s);
|
||||
}
|
||||
};
|
||||
} // namespace std
|
||||
|
||||
namespace llvm {
|
||||
namespace yaml {
|
||||
template <> struct ScalarEnumerationTraits<FormatStyle::LanguageKind> {
|
||||
@ -1432,7 +1421,8 @@ public:
|
||||
private:
|
||||
static bool guessIsObjC(const SmallVectorImpl<AnnotatedLine *> &AnnotatedLines,
|
||||
const AdditionalKeywords &Keywords) {
|
||||
static const std::unordered_set<StringRef> FoundationIdentifiers = {
|
||||
// Keep this array sorted, since we are binary searching over it.
|
||||
static constexpr llvm::StringLiteral FoundationIdentifiers[] = {
|
||||
"CGFloat",
|
||||
"NSAffineTransform",
|
||||
"NSArray",
|
||||
@ -1490,8 +1480,9 @@ private:
|
||||
FormatTok->isOneOf(tok::numeric_constant, tok::l_square,
|
||||
tok::l_brace))) ||
|
||||
(FormatTok->Tok.isAnyIdentifier() &&
|
||||
FoundationIdentifiers.find(FormatTok->TokenText) !=
|
||||
FoundationIdentifiers.end()) ||
|
||||
std::binary_search(std::begin(FoundationIdentifiers),
|
||||
std::end(FoundationIdentifiers),
|
||||
FormatTok->TokenText)) ||
|
||||
FormatTok->is(TT_ObjCStringLiteral) ||
|
||||
FormatTok->isOneOf(Keywords.kw_NS_ENUM, Keywords.kw_NS_OPTIONS,
|
||||
TT_ObjCBlockLBrace, TT_ObjCBlockLParen,
|
||||
|
Loading…
Reference in New Issue
Block a user