Ejemplo n.º 1
0
 private MapDecl(MapDecl n, bool keepCompilerData)
     : base(n.Span)
 {
     MapKind      = n.MapKind;
     IsPartial    = n.IsPartial;
     Name         = n.Name;
     CompilerData = keepCompilerData ? n.CompilerData : null;
 }
Ejemplo n.º 2
0
        internal override Node ShallowClone(Node replace, int pos)
        {
            var cnode  = new MapDecl(this, true);
            int occurs = 0;

            if (Config != null)
            {
                cnode.Config = CloneField <Config>(Config, replace, pos, ref occurs);
            }

            cnode.Dom = new ImmutableCollection <Field>(CloneCollection <Field>(dom, replace, pos, ref occurs, out cnode.dom));
            cnode.Cod = new ImmutableCollection <Field>(CloneCollection <Field>(cod, replace, pos, ref occurs, out cnode.cod));
            return(cnode);
        }
Ejemplo n.º 3
0
        internal override Node DeepClone(IEnumerable <Node> clonedChildren, bool keepCompilerData)
        {
            var cnode = new MapDecl(this, keepCompilerData);

            cnode.cachedHashCode = this.cachedHashCode;
            using (var cenum = clonedChildren.GetEnumerator())
            {
                if (Config != null)
                {
                    cnode.Config = TakeClone <Config>(cenum);
                }

                cnode.Dom = new ImmutableCollection <Field>(TakeClones <Field>(dom.Count, cenum, out cnode.dom));
                cnode.Cod = new ImmutableCollection <Field>(TakeClones <Field>(cod.Count, cenum, out cnode.cod));
            }

            return(cnode);
        }