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
|
/*
SPDX-FileCopyrightText: 2014 Heinz Wiesinger <pprkut@liwjatan.at>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef TRAITMETHODALIASDECLARATION_H
#define TRAITMETHODALIASDECLARATION_H
#include "classmethoddeclaration.h"
namespace Php
{
class TraitMethodAliasDeclarationData;
/**
* inherits ClassMethodDeclaration to allow some trait specific functionality
*/
class KDEVPHPDUCHAIN_EXPORT TraitMethodAliasDeclaration : public ClassMethodDeclaration
{
public:
TraitMethodAliasDeclaration(const TraitMethodAliasDeclaration &rhs);
TraitMethodAliasDeclaration(const KDevelop::RangeInRevision &range, KDevelop::DUContext *context);
TraitMethodAliasDeclaration(TraitMethodAliasDeclarationData &data);
TraitMethodAliasDeclaration(TraitMethodAliasDeclarationData &data, const KDevelop::RangeInRevision &range, KDevelop::DUContext *context);
~TraitMethodAliasDeclaration() 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;
/**
* Set the identifier for a context that contains a declaration overridden by this one.
*
* \param ids the identifiers of the context that contain an overridden declaration
*/
void setOverrides(const QVector< KDevelop::IndexedQualifiedIdentifier >& ids);
/**
* Check whether a given identifier is registered as containing an overridden declaration
*
* \returns whether a given identifier is registered as containing an overridden declaration
*/
bool isOverriding(const KDevelop::IndexedQualifiedIdentifier& id) const;
enum {
Identity = 131
};
KDevelop::Declaration* clonePrivate() const override;
private:
DUCHAIN_DECLARE_DATA(TraitMethodAliasDeclaration)
};
}
#endif // TRAITMETHODALIASDECLARATION_H
|