private MapDecl(MapDecl n, bool keepCompilerData) : base(n.Span) { MapKind = n.MapKind; IsPartial = n.IsPartial; Name = n.Name; CompilerData = keepCompilerData ? n.CompilerData : null; }
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); }
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); }