/// <inheritdoc/> public override AstStatement CloneAstStatement(Dictionary <object, object> context) { if (context.ContainsKey(this)) { return((AstStatement)context[this]); } var result = new AstUseInheritanceStatement(); context[this] = result; result.SubName = SubName.Clone(context); result.SuperName = SuperName.Clone(context); result.Rank = Rank.CloneValue(context); result.HasNot = HasNot; result.AppendAnnotations(this, context); return(result); }
/// <summary> /// Clones the instance using special context and returns cloned instance. /// </summary> /// <param name="context">Special context for providing references continuity.</param> /// <returns>Cloned instance.</returns> public InheritanceItem Clone(Dictionary <object, object> context) { if (context.ContainsKey(this)) { return((InheritanceItem)context[this]); } var result = new InheritanceItem(); context[this] = result; result.SubName = SubName.Clone(context); result.SuperName = SuperName.Clone(context); result.Rank = Rank.CloneValue(context); result.IsSystemDefined = IsSystemDefined; result.KeysOfPrimaryRecords = KeysOfPrimaryRecords; result.AppendAnnotations(this, context); return(result); }