/// <summary> /// Creates a new conversion that is like this one, but using the supplied children. If all of the children are the same, it will return this conversion. /// </summary> /// <param name="deconstruct">The <see cref="Deconstruct" /> property of the result.</param> /// <param name="conversions">The <see cref="Conversions" /> property of the result.</param> /// <returns>This conversion if no children changed, or an conversion with the updated children.</returns> public DeconstructionConversion Update(LambdaExpression deconstruct, IEnumerable <Conversion> conversions) { if (deconstruct == Deconstruct && conversions == Conversions) { return(this); } return(CSharpExpression.Deconstruct(deconstruct, conversions)); }