/// <summary> /// Creates a new <see cref="MethodBodyCloner"/> /// </summary> /// <param name="parent">Cloner for the method signature to which this method body is attached.</param> /// <param name="source">Resolved cloning source.</param> public MethodBodyCloner(MethodSignatureCloner parent, MethodBody source) : base(parent.CloningContext, source) { Contract.Requires(parent != null); Contract.Requires(parent.CloningContext != null); Contract.Requires(source != null); Contract.Ensures(this.Parent != null); this.Parent = parent; }
/// <summary> /// Creates a new <see cref="ParameterCloner"/>. /// </summary> /// <param name="parent">Cloner for the signature associated with the method body being cloned.</param> /// <param name="previous">Cloner for the previous instruction, if any.</param> /// <param name="source">Cloning source.</param> public ParameterCloner(MethodSignatureCloner parent, ParameterCloner previous, ParameterDefinition source) : base(parent.CloningContext, source) { Contract.Requires(parent != null); Contract.Requires(parent.CloningContext != null); Contract.Requires(source != null); Contract.Ensures(this.Parent != null); this.Parent = parent; this.Parent.ParameterCloners.Add(this); this.Previous = previous; }