Clang: Make ProjectPartId StringCache friendly

Change-Id: I53fdeb87ac67ca2c2c7509bf725566298f3b2963
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Marco Bubke
2019-08-15 14:27:40 +02:00
parent e0ca44e7bc
commit d63eaa0c42

View File

@@ -31,6 +31,15 @@ namespace ClangBackEnd {
class ProjectPartId class ProjectPartId
{ {
template<typename StringType,
typename StringViewType,
typename IndexType,
typename Mutex,
typename Compare,
Compare compare,
typename CacheEntry>
friend class StringCache;
public: public:
constexpr ProjectPartId() = default; constexpr ProjectPartId() = default;
@@ -47,6 +56,11 @@ public:
return first.isValid() && first.projectPathId == second.projectPathId; return first.isValid() && first.projectPathId == second.projectPathId;
} }
friend bool operator==(ProjectPartId first, int second)
{
return first == ProjectPartId{second};
}
friend bool operator!=(ProjectPartId first, ProjectPartId second) { return !(first == second); } friend bool operator!=(ProjectPartId first, ProjectPartId second) { return !(first == second); }
friend bool operator<(ProjectPartId first, ProjectPartId second) friend bool operator<(ProjectPartId first, ProjectPartId second)
@@ -68,6 +82,10 @@ public:
return in; return in;
} }
private:
operator int() const { return projectPathId; }
ProjectPartId operator++() { return ++projectPathId; }
public: public:
int projectPathId = -1; int projectPathId = -1;
}; };