Exemple #1
0
 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));
            }
        }