From 2f9053921113aa1a48928b238d99f87049f98d54 Mon Sep 17 00:00:00 2001 From: Roberto Raggi Date: Mon, 9 Feb 2009 16:15:02 +0100 Subject: Reimplemented Symbol::as*() methods using virtual functions. --- src/shared/cplusplus/Symbol.cpp | 88 ++++++----------------------------------- 1 file changed, 11 insertions(+), 77 deletions(-) (limited to 'src/shared/cplusplus/Symbol.cpp') diff --git a/src/shared/cplusplus/Symbol.cpp b/src/shared/cplusplus/Symbol.cpp index cdcd389118..8e9ba22bb7 100644 --- a/src/shared/cplusplus/Symbol.cpp +++ b/src/shared/cplusplus/Symbol.cpp @@ -320,102 +320,36 @@ bool Symbol::isPrivate() const { return _visibility == Private; } bool Symbol::isScopedSymbol() const -{ return dynamic_cast(this) != 0; } +{ return asScopedSymbol() != 0; } bool Symbol::isEnum() const -{ return dynamic_cast(this) != 0; } +{ return asEnum() != 0; } bool Symbol::isFunction() const -{ return dynamic_cast(this) != 0; } +{ return asFunction() != 0; } bool Symbol::isNamespace() const -{ return dynamic_cast(this) != 0; } +{ return asNamespace() != 0; } bool Symbol::isClass() const -{ return dynamic_cast(this) != 0; } +{ return asClass() != 0; } bool Symbol::isBlock() const -{ return dynamic_cast(this) != 0; } +{ return asBlock() != 0; } bool Symbol::isUsingNamespaceDirective() const -{ return dynamic_cast(this) != 0; } +{ return asUsingNamespaceDirective() != 0; } bool Symbol::isUsingDeclaration() const -{ return dynamic_cast(this) != 0; } +{ return asUsingDeclaration() != 0; } bool Symbol::isDeclaration() const -{ return dynamic_cast(this) != 0; } +{ return asDeclaration() != 0; } bool Symbol::isArgument() const -{ return dynamic_cast(this) != 0; } +{ return asArgument() != 0; } bool Symbol::isBaseClass() const -{ return dynamic_cast(this) != 0; } - -const ScopedSymbol *Symbol::asScopedSymbol() const -{ return dynamic_cast(this); } - -const Enum *Symbol::asEnum() const -{ return dynamic_cast(this); } - -const Function *Symbol::asFunction() const -{ return dynamic_cast(this); } - -const Namespace *Symbol::asNamespace() const -{ return dynamic_cast(this); } - -const Class *Symbol::asClass() const -{ return dynamic_cast(this); } - -const Block *Symbol::asBlock() const -{ return dynamic_cast(this); } - -const UsingNamespaceDirective *Symbol::asUsingNamespaceDirective() const -{ return dynamic_cast(this); } - -const UsingDeclaration *Symbol::asUsingDeclaration() const -{ return dynamic_cast(this); } - -const Declaration *Symbol::asDeclaration() const -{ return dynamic_cast(this); } - -const Argument *Symbol::asArgument() const -{ return dynamic_cast(this); } - -const BaseClass *Symbol::asBaseClass() const -{ return dynamic_cast(this); } - -ScopedSymbol *Symbol::asScopedSymbol() -{ return dynamic_cast(this); } - -Enum *Symbol::asEnum() -{ return dynamic_cast(this); } - -Function *Symbol::asFunction() -{ return dynamic_cast(this); } - -Namespace *Symbol::asNamespace() -{ return dynamic_cast(this); } - -Class *Symbol::asClass() -{ return dynamic_cast(this); } - -Block *Symbol::asBlock() -{ return dynamic_cast(this); } - -UsingNamespaceDirective *Symbol::asUsingNamespaceDirective() -{ return dynamic_cast(this); } - -UsingDeclaration *Symbol::asUsingDeclaration() -{ return dynamic_cast(this); } - -Declaration *Symbol::asDeclaration() -{ return dynamic_cast(this); } - -Argument *Symbol::asArgument() -{ return dynamic_cast(this); } - -BaseClass *Symbol::asBaseClass() -{ return dynamic_cast(this); } +{ return asBaseClass() != 0; } CPLUSPLUS_END_NAMESPACE -- cgit v1.2.1