Reimplemented Type::as*Type() using virtual methods.

This commit is contained in:
Roberto Raggi
2009-02-09 17:44:06 +01:00
parent ce22a96041
commit d01795d933
15 changed files with 175 additions and 181 deletions

View File

@@ -217,6 +217,12 @@ public:
virtual Enum *asEnum()
{ return this; }
virtual const Enum *asEnumType() const
{ return this; }
virtual Enum *asEnumType()
{ return this; }
protected:
virtual void visitSymbol0(SymbolVisitor *visitor);
virtual void accept0(TypeVisitor *visitor);
@@ -278,6 +284,12 @@ public:
virtual Function *asFunction()
{ return this; }
virtual const Function *asFunctionType() const
{ return this; }
virtual Function *asFunctionType()
{ return this; }
protected:
virtual void visitSymbol0(SymbolVisitor *visitor);
virtual void accept0(TypeVisitor *visitor);
@@ -318,6 +330,12 @@ public:
virtual Namespace *asNamespace()
{ return this; }
virtual const Namespace *asNamespaceType() const
{ return this; }
virtual Namespace *asNamespaceType()
{ return this; }
protected:
virtual void visitSymbol0(SymbolVisitor *visitor);
virtual void accept0(TypeVisitor *visitor);
@@ -388,6 +406,12 @@ public:
virtual Class *asClass()
{ return this; }
virtual const Class *asClassType() const
{ return this; }
virtual Class *asClassType()
{ return this; }
protected:
virtual void visitSymbol0(SymbolVisitor *visitor);
virtual void accept0(TypeVisitor *visitor);