protected override void CloneTo (CloneContext clonectx, Statement t) { TryCatch target = (TryCatch) t; target.Block = clonectx.LookupBlock (Block); if (General != null) target.General = (Catch) General.Clone (clonectx); if (Specific != null){ target.Specific = new List<Catch> (); foreach (Catch c in Specific) target.Specific.Add ((Catch) c.Clone (clonectx)); } }
protected override void CloneTo (CloneContext clonectx, Expression t) { AnonymousMethodExpression target = (AnonymousMethodExpression) t; target.Block = (ParametersBlock) clonectx.LookupBlock (Block); }
protected override void CloneTo (CloneContext clonectx, Statement t) { Catch target = (Catch) t; if (type_expr != null) target.type_expr = (FullNamedExpression) type_expr.Clone (clonectx); target.block = clonectx.LookupBlock (block); }
protected override void CloneTo (CloneContext clonectx, Statement t) { TryFinally target = (TryFinally) t; target.stmt = (Statement) stmt.Clone (clonectx); if (fini != null) target.fini = clonectx.LookupBlock (fini); }
protected override void CloneTo (CloneContext clonectx, Statement t) { Checked target = (Checked) t; target.Block = clonectx.LookupBlock (Block); }
protected override void CloneTo (CloneContext clonectx, Statement t) { Unsafe target = (Unsafe) t; target.Block = clonectx.LookupBlock (Block); }
protected override void CloneTo (CloneContext clonectx, Statement t) { Block target = (Block) t; #if DEBUG target.clone_id = clone_id_counter++; #endif clonectx.AddBlockMap (this, target); target.ParametersBlock = (ParametersBlock) (ParametersBlock == this ? target : clonectx.RemapBlockCopy (ParametersBlock)); target.Explicit = (ExplicitBlock) (Explicit == this ? target : clonectx.LookupBlock (Explicit)); if (Parent != null) target.Parent = clonectx.RemapBlockCopy (Parent); target.statements = new List<Statement> (statements.Count); foreach (Statement s in statements) target.statements.Add (s.Clone (clonectx)); }
public SwitchSection Clone (CloneContext clonectx) { var cloned_labels = new List<SwitchLabel> (); foreach (SwitchLabel sl in cloned_labels) cloned_labels.Add (sl.Clone (clonectx)); return new SwitchSection (cloned_labels, clonectx.LookupBlock (Block)); }
protected override void CloneTo (CloneContext clonectx, Statement t) { Catch target = (Catch) t; if (type_expr != null) target.type_expr = type_expr.Clone (clonectx); if (VarBlock != null) target.VarBlock = clonectx.LookupBlock (VarBlock); target.Block = clonectx.LookupBlock (Block); }
protected override void CloneTo (CloneContext clonectx, Statement t) { Block target = (Block) t; clonectx.AddBlockMap (this, target); target.Toplevel = (ToplevelBlock) clonectx.LookupBlock (Toplevel); target.Explicit = (ExplicitBlock) clonectx.LookupBlock (Explicit); if (Parent != null) target.Parent = clonectx.RemapBlockCopy (Parent); if (variables != null){ target.variables = new Dictionary<string, LocalInfo> (); foreach (var de in variables){ LocalInfo newlocal = de.Value.Clone (clonectx); target.variables [de.Key] = newlocal; clonectx.AddVariableMap (de.Value, newlocal); } } target.statements = new List<Statement> (statements.Count); foreach (Statement s in statements) target.statements.Add (s.Clone (clonectx)); if (target.children != null){ target.children = new List<Block> (children.Count); foreach (Block b in children){ target.children.Add (clonectx.LookupBlock (b)); } } // // TODO: labels, switch_block, constants (?), anonymous_children // }
public LocalInfo Clone (CloneContext clonectx) { // // Variables in anonymous block are not resolved yet // if (VariableType == null) return new LocalInfo ((FullNamedExpression) Type.Clone (clonectx), Name, clonectx.LookupBlock (Block), Location); // // Variables in method block are resolved // LocalInfo li = new LocalInfo (null, Name, clonectx.LookupBlock (Block), Location); li.VariableType = VariableType; return li; }
protected override void CloneTo (CloneContext clonectx, Expression t) { This target = (This) t; target.block = clonectx.LookupBlock (block); }
protected override void CloneTo (CloneContext clonectx, Expression t) { LocalVariableReference target = (LocalVariableReference) t; target.Block = clonectx.LookupBlock (Block); if (local_info != null) target.local_info = clonectx.LookupVariable (local_info); }