/// <summary>
/// Clones an attributed element.
/// </summary>
/// <returns>Cloned attribute element state.</returns>
protected override AttributedElement DoAttributedClone()
{
TypeElement clone = new TypeElement();
//
// Copy state
//
clone._typeModifiers = _typeModifiers;
clone._type = _type;
foreach (InterfaceReference interfaceReference in Interfaces)
{
InterfaceReference referenceClone = interfaceReference.Clone() as InterfaceReference;
clone.AddInterface(referenceClone);
}
foreach (TypeParameter typeParam in TypeParameters)
{
TypeParameter typeParamClone = typeParam.Clone() as TypeParameter;
clone.TypeParametersBase.Add(typeParamClone);
}
return(clone);
}