template <class Derived, class TypeClass, class LocalData = PointerLikeLocInfo>
class PointerLikeTypeLoc : public ConcreteTypeLoc<UnqualTypeLoc, Derived,
TypeClass, LocalData> {
-protected:
+public:
SourceLocation getSigilLoc() const {
return this->getLocalData()->StarLoc;
}
this->getLocalData()->StarLoc = Loc;
}
-public:
TypeLoc getPointeeLoc() const {
return this->getInnerTypeLoc();
}
ReferenceType> {
};
-class LValueReferenceTypeLoc : public PointerLikeTypeLoc<LValueReferenceTypeLoc,
- LValueReferenceType> {
+class LValueReferenceTypeLoc :
+ public InheritingConcreteTypeLoc<ReferenceTypeLoc,
+ LValueReferenceTypeLoc,
+ LValueReferenceType> {
public:
SourceLocation getAmpLoc() const {
return getSigilLoc();
}
};
-class RValueReferenceTypeLoc : public PointerLikeTypeLoc<RValueReferenceTypeLoc,
- RValueReferenceType> {
+class RValueReferenceTypeLoc :
+ public InheritingConcreteTypeLoc<ReferenceTypeLoc,
+ RValueReferenceTypeLoc,
+ RValueReferenceType> {
public:
SourceLocation getAmpAmpLoc() const {
return getSigilLoc();