public ItemValueVariantBase([NotNull] ItemValueVariantBase clone, [NotNull] AnalysisContext context) : base(clone, context) { ArrayStorage = clone.ArrayStorage; Index = clone.Index; TypeRef = clone.TypeRef; }
public static ItemValueVariantBase Clone([CanBeNull] this ItemValueVariantBase self, [NotNull] AnalysisContext context, GraphNode[] path) { var clone = self.Clone(context); if (clone != null) { clone.Path = path; } return(clone); }
public static ItemValueVariantBase Clone([CanBeNull] this ItemValueVariantBase self, [NotNull] AnalysisContext context) { switch (self) { case null: return(null); case ArrayItemVariant arrayItemVariant: return(arrayItemVariant.Clone(context)); case CombinedItemVariant combinedItemVariant: return(combinedItemVariant.CreateNewInstance(context)); default: throw new ArgumentOutOfRangeException(nameof(self)); } }