1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
/*
SPDX-FileCopyrightText: 2014 Heinz Wiesinger <pprkut@liwjatan.at>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef TRAITMEMBERALIASDECLARATION_H
#define TRAITMEMBERALIASDECLARATION_H
#include <language/duchain/classmemberdeclaration.h>
#include <language/duchain/classmemberdeclarationdata.h>
#include "phpduchainexport.h"
namespace Php
{
class KDEVPHPDUCHAIN_EXPORT TraitMemberAliasDeclarationData : public KDevelop::ClassMemberDeclarationData
{
public:
TraitMemberAliasDeclarationData()
: KDevelop::ClassMemberDeclarationData() {}
TraitMemberAliasDeclarationData( const TraitMemberAliasDeclarationData& rhs )
: KDevelop::ClassMemberDeclarationData(rhs)
{
m_aliasedDeclaration = rhs.m_aliasedDeclaration;
}
KDevelop::IndexedDeclaration m_aliasedDeclaration;
};
/**
* Represents a single class member definition in a definition-use chain.
*/
class KDEVPHPDUCHAIN_EXPORT TraitMemberAliasDeclaration : public KDevelop::ClassMemberDeclaration
{
public:
TraitMemberAliasDeclaration(const TraitMemberAliasDeclaration& rhs);
TraitMemberAliasDeclaration(const KDevelop::RangeInRevision& range, KDevelop::DUContext* context);
TraitMemberAliasDeclaration(TraitMemberAliasDeclarationData& dd);
~TraitMemberAliasDeclaration() override;
QString toString() const override;
/**
* Set the declaration that is aliased by this declaration.
*
* \param decl the declaration that this declaration references
*/
void setAliasedDeclaration(const KDevelop::IndexedDeclaration& decl);
/**
* Access the declaration that is aliased by this declaration.
*
* \returns the aliased declaration
*/
KDevelop::IndexedDeclaration aliasedDeclaration() const;
enum {
Identity = 130
};
protected:
TraitMemberAliasDeclaration(TraitMemberAliasDeclarationData& dd, const KDevelop::RangeInRevision& range);
private:
DUCHAIN_DECLARE_DATA(TraitMemberAliasDeclaration)
KDevelop::Declaration* clonePrivate() const override;
};
}
#endif // TRAITMEMBERALIASDECLARATION_H
|