[clang] [clang] Unify `SourceLocation` and `IdentifierInfo*` pair-like data structures to `IdentifierLoc` (PR #135808)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Apr 15 16:57:40 PDT 2025
================
@@ -466,6 +467,29 @@ class FullSourceLoc : public SourceLocation {
}
};
+/// A simple pair of identifier info and location.
+class IdentifierLoc {
+ SourceLocation Loc;
+ IdentifierInfo *II = nullptr;
+
+public:
+ IdentifierLoc() = default;
+ IdentifierLoc(SourceLocation L, IdentifierInfo *Ident) : Loc(L), II(Ident) {}
+
+ void setLoc(SourceLocation L) { Loc = L; }
+ void setIdentifierInfo(IdentifierInfo *Ident) { II = Ident; }
+ SourceLocation getLoc() const { return Loc; }
+ IdentifierInfo *getIdentifierInfo() const { return II; }
+
+ bool operator==(const IdentifierLoc &X) const {
+ return Loc == X.Loc && II == X.II;
+ }
+
+ bool operator!=(const IdentifierLoc &X) const {
+ return Loc != X.Loc || II != X.II;
+ }
+};
+
----------------
yronglin wrote:
Agree, I have moved `IdentifierLoc` to`IdentifierLoc.h`.
https://github.com/llvm/llvm-project/pull/135808
More information about the cfe-commits
mailing list