language/duchain
aliasdeclaration.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef ALIASDECLARATION_H
00020 #define ALIASDECLARATION_H
00021
00022 #include "declaration.h"
00023 #include "duchainpointer.h"
00024 #include "declarationdata.h"
00025
00026 namespace KDevelop
00027 {
00028 class KDEVPLATFORMLANGUAGE_EXPORT AliasDeclarationData : public DeclarationData
00029 {
00030 public:
00031 AliasDeclarationData() {}
00032 AliasDeclarationData( const AliasDeclarationData& rhs )
00033 : DeclarationData( rhs )
00034 {
00035 m_aliasedDeclaration = rhs.m_aliasedDeclaration;
00036 }
00037 IndexedDeclaration m_aliasedDeclaration;
00038 };
00044 class KDEVPLATFORMLANGUAGE_EXPORT AliasDeclaration : public Declaration
00045 {
00046 public:
00048 AliasDeclaration(const AliasDeclaration& rhs);
00056 AliasDeclaration(const SimpleRange& range, DUContext* context);
00057
00058 AliasDeclaration(AliasDeclarationData& data);
00060 virtual ~AliasDeclaration();
00061
00067 virtual void setAbstractType(AbstractType::Ptr type);
00068
00074 void setAliasedDeclaration(const IndexedDeclaration& decl);
00075
00081 IndexedDeclaration aliasedDeclaration() const;
00082
00083 virtual QString toString() const;
00084
00085 enum {
00086 Identity = 6
00087 };
00088
00089 private:
00090 virtual Declaration* clonePrivate() const;
00091 DUCHAIN_DECLARE_DATA(AliasDeclaration)
00092 };
00093 }
00094
00095 #endif // FUNCTIONDECLARATION_H
00096
00097