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
|
/*
SPDX-FileCopyrightText: 2014 Heinz Wiesinger <pprkut@liwjatan.at>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#include "traitmemberaliasdeclaration.h"
#include <language/duchain/duchainregister.h>
using namespace KDevelop;
namespace Php
{
REGISTER_DUCHAIN_ITEM(TraitMemberAliasDeclaration);
TraitMemberAliasDeclaration::TraitMemberAliasDeclaration(const TraitMemberAliasDeclaration& rhs)
: KDevelop::ClassMemberDeclaration(*new TraitMemberAliasDeclarationData(*rhs.d_func()))
{
}
TraitMemberAliasDeclaration::TraitMemberAliasDeclaration(const RangeInRevision& range, DUContext* context)
: KDevelop::ClassMemberDeclaration(*new TraitMemberAliasDeclarationData, range)
{
d_func_dynamic()->setClassId(this);
if (context)
setContext(context);
}
TraitMemberAliasDeclaration::TraitMemberAliasDeclaration(TraitMemberAliasDeclarationData& dd)
: KDevelop::ClassMemberDeclaration(dd)
{
}
TraitMemberAliasDeclaration::TraitMemberAliasDeclaration(TraitMemberAliasDeclarationData& dd, const RangeInRevision& range)
: KDevelop::ClassMemberDeclaration(dd, range)
{
}
TraitMemberAliasDeclaration::~TraitMemberAliasDeclaration()
{
}
Declaration* TraitMemberAliasDeclaration::clonePrivate() const
{
return new TraitMemberAliasDeclaration(*this);
}
QString TraitMemberAliasDeclaration::toString() const
{
if( aliasedDeclaration().isValid() )
return aliasedDeclaration().declaration()->toString();
else
return i18n("Lost trait alias %1").arg(identifier().toString());
}
void TraitMemberAliasDeclaration::setAliasedDeclaration(const IndexedDeclaration& decl)
{
d_func_dynamic()->m_aliasedDeclaration = decl;
Declaration* aliased = decl.data();
if(aliased)
Declaration::setAbstractType(aliased->abstractType());
}
IndexedDeclaration TraitMemberAliasDeclaration::aliasedDeclaration() const
{
return d_func()->m_aliasedDeclaration;
}
}
|