forked from qt-creator/qt-creator
Reimplemented Name::as*() using virtual functions.
This commit is contained in:
@@ -63,58 +63,22 @@ Name::~Name()
|
|||||||
{ }
|
{ }
|
||||||
|
|
||||||
bool Name::isNameId() const
|
bool Name::isNameId() const
|
||||||
{ return dynamic_cast<const NameId *>(this) != 0; }
|
{ return asNameId() != 0; }
|
||||||
|
|
||||||
bool Name::isTemplateNameId() const
|
bool Name::isTemplateNameId() const
|
||||||
{ return dynamic_cast<const TemplateNameId *>(this) != 0; }
|
{ return asTemplateNameId() != 0; }
|
||||||
|
|
||||||
bool Name::isDestructorNameId() const
|
bool Name::isDestructorNameId() const
|
||||||
{ return dynamic_cast<const DestructorNameId *>(this) != 0; }
|
{ return asDestructorNameId() != 0; }
|
||||||
|
|
||||||
bool Name::isOperatorNameId() const
|
bool Name::isOperatorNameId() const
|
||||||
{ return dynamic_cast<const OperatorNameId *>(this) != 0; }
|
{ return asOperatorNameId() != 0; }
|
||||||
|
|
||||||
bool Name::isConversionNameId() const
|
bool Name::isConversionNameId() const
|
||||||
{ return dynamic_cast<const ConversionNameId *>(this) != 0; }
|
{ return asConversionNameId() != 0; }
|
||||||
|
|
||||||
bool Name::isQualifiedNameId() const
|
bool Name::isQualifiedNameId() const
|
||||||
{ return dynamic_cast<const QualifiedNameId *>(this) != 0; }
|
{ return asQualifiedNameId() != 0; }
|
||||||
|
|
||||||
const NameId *Name::asNameId() const
|
|
||||||
{ return dynamic_cast<const NameId *>(this); }
|
|
||||||
|
|
||||||
const TemplateNameId *Name::asTemplateNameId() const
|
|
||||||
{ return dynamic_cast<const TemplateNameId *>(this); }
|
|
||||||
|
|
||||||
const DestructorNameId *Name::asDestructorNameId() const
|
|
||||||
{ return dynamic_cast<const DestructorNameId *>(this); }
|
|
||||||
|
|
||||||
const OperatorNameId *Name::asOperatorNameId() const
|
|
||||||
{ return dynamic_cast<const OperatorNameId *>(this); }
|
|
||||||
|
|
||||||
const ConversionNameId *Name::asConversionNameId() const
|
|
||||||
{ return dynamic_cast<const ConversionNameId *>(this); }
|
|
||||||
|
|
||||||
const QualifiedNameId *Name::asQualifiedNameId() const
|
|
||||||
{ return dynamic_cast<const QualifiedNameId *>(this); }
|
|
||||||
|
|
||||||
NameId *Name::asNameId()
|
|
||||||
{ return dynamic_cast<NameId *>(this); }
|
|
||||||
|
|
||||||
TemplateNameId *Name::asTemplateNameId()
|
|
||||||
{ return dynamic_cast<TemplateNameId *>(this); }
|
|
||||||
|
|
||||||
DestructorNameId *Name::asDestructorNameId()
|
|
||||||
{ return dynamic_cast<DestructorNameId *>(this); }
|
|
||||||
|
|
||||||
OperatorNameId *Name::asOperatorNameId()
|
|
||||||
{ return dynamic_cast<OperatorNameId *>(this); }
|
|
||||||
|
|
||||||
ConversionNameId *Name::asConversionNameId()
|
|
||||||
{ return dynamic_cast<ConversionNameId *>(this); }
|
|
||||||
|
|
||||||
QualifiedNameId *Name::asQualifiedNameId()
|
|
||||||
{ return dynamic_cast<QualifiedNameId *>(this); }
|
|
||||||
|
|
||||||
void Name::accept(NameVisitor *visitor)
|
void Name::accept(NameVisitor *visitor)
|
||||||
{
|
{
|
||||||
|
@@ -74,19 +74,19 @@ public:
|
|||||||
bool isConversionNameId() const;
|
bool isConversionNameId() const;
|
||||||
bool isQualifiedNameId() const;
|
bool isQualifiedNameId() const;
|
||||||
|
|
||||||
const NameId *asNameId() const;
|
virtual const NameId *asNameId() const { return 0; }
|
||||||
const TemplateNameId *asTemplateNameId() const;
|
virtual const TemplateNameId *asTemplateNameId() const { return 0; }
|
||||||
const DestructorNameId *asDestructorNameId() const;
|
virtual const DestructorNameId *asDestructorNameId() const { return 0; }
|
||||||
const OperatorNameId *asOperatorNameId() const;
|
virtual const OperatorNameId *asOperatorNameId() const { return 0; }
|
||||||
const ConversionNameId *asConversionNameId() const;
|
virtual const ConversionNameId *asConversionNameId() const { return 0; }
|
||||||
const QualifiedNameId *asQualifiedNameId() const;
|
virtual const QualifiedNameId *asQualifiedNameId() const { return 0; }
|
||||||
|
|
||||||
NameId *asNameId();
|
virtual NameId *asNameId() { return 0; }
|
||||||
TemplateNameId *asTemplateNameId();
|
virtual TemplateNameId *asTemplateNameId() { return 0; }
|
||||||
DestructorNameId *asDestructorNameId();
|
virtual DestructorNameId *asDestructorNameId() { return 0; }
|
||||||
OperatorNameId *asOperatorNameId();
|
virtual OperatorNameId *asOperatorNameId() { return 0; }
|
||||||
ConversionNameId *asConversionNameId();
|
virtual ConversionNameId *asConversionNameId() { return 0; }
|
||||||
QualifiedNameId *asQualifiedNameId();
|
virtual QualifiedNameId *asQualifiedNameId() { return 0; }
|
||||||
|
|
||||||
virtual bool isEqualTo(const Name *other) const = 0;
|
virtual bool isEqualTo(const Name *other) const = 0;
|
||||||
|
|
||||||
|
@@ -77,6 +77,12 @@ public:
|
|||||||
|
|
||||||
virtual bool isEqualTo(const Name *other) const;
|
virtual bool isEqualTo(const Name *other) const;
|
||||||
|
|
||||||
|
virtual const QualifiedNameId *asQualifiedNameId() const
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
|
virtual QualifiedNameId *asQualifiedNameId()
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void accept0(NameVisitor *visitor);
|
virtual void accept0(NameVisitor *visitor);
|
||||||
|
|
||||||
@@ -96,6 +102,12 @@ public:
|
|||||||
|
|
||||||
virtual bool isEqualTo(const Name *other) const;
|
virtual bool isEqualTo(const Name *other) const;
|
||||||
|
|
||||||
|
virtual const NameId *asNameId() const
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
|
virtual NameId *asNameId()
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void accept0(NameVisitor *visitor);
|
virtual void accept0(NameVisitor *visitor);
|
||||||
|
|
||||||
@@ -113,6 +125,12 @@ public:
|
|||||||
|
|
||||||
virtual bool isEqualTo(const Name *other) const;
|
virtual bool isEqualTo(const Name *other) const;
|
||||||
|
|
||||||
|
virtual const DestructorNameId *asDestructorNameId() const
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
|
virtual DestructorNameId *asDestructorNameId()
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void accept0(NameVisitor *visitor);
|
virtual void accept0(NameVisitor *visitor);
|
||||||
|
|
||||||
@@ -137,6 +155,12 @@ public:
|
|||||||
|
|
||||||
virtual bool isEqualTo(const Name *other) const;
|
virtual bool isEqualTo(const Name *other) const;
|
||||||
|
|
||||||
|
virtual const TemplateNameId *asTemplateNameId() const
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
|
virtual TemplateNameId *asTemplateNameId()
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void accept0(NameVisitor *visitor);
|
virtual void accept0(NameVisitor *visitor);
|
||||||
|
|
||||||
@@ -211,6 +235,12 @@ public:
|
|||||||
|
|
||||||
virtual bool isEqualTo(const Name *other) const;
|
virtual bool isEqualTo(const Name *other) const;
|
||||||
|
|
||||||
|
virtual const OperatorNameId *asOperatorNameId() const
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
|
virtual OperatorNameId *asOperatorNameId()
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void accept0(NameVisitor *visitor);
|
virtual void accept0(NameVisitor *visitor);
|
||||||
|
|
||||||
@@ -228,6 +258,12 @@ public:
|
|||||||
|
|
||||||
virtual bool isEqualTo(const Name *other) const;
|
virtual bool isEqualTo(const Name *other) const;
|
||||||
|
|
||||||
|
virtual const ConversionNameId *asConversionNameId() const
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
|
virtual ConversionNameId *asConversionNameId()
|
||||||
|
{ return this; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void accept0(NameVisitor *visitor);
|
virtual void accept0(NameVisitor *visitor);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user