internal MSA.Expression /*!*/ TransformWrite(AstGenerator /*!*/ gen, Arguments /*!*/ rightValues) { Debug.Assert(!rightValues.IsEmpty); Assert.NotEmpty(_leftValues); if (_leftValues.Length == 1) { // (...) = RHS is equivalent to ... = RHS: CompoundLeftValue compound = _leftValues[0] as CompoundLeftValue; if (compound != null) { return(compound.TransformWrite(gen, rightValues)); } if (!HasUnsplattedValue) { return(_leftValues[0].TransformWrite(gen, rightValues.TransformToArray(gen))); } } if (rightValues.Expressions.Length == 1) { return(TransformWrite(gen, rightValues.Expressions[0].TransformRead(gen), true)); } else { return(TransformWrite(gen, rightValues.TransformToArray(gen), false)); } }
internal MSA.Expression/*!*/ TransformWrite(AstGenerator/*!*/ gen, Arguments/*!*/ rightValues) { Debug.Assert(!rightValues.IsEmpty); Assert.NotEmpty(_leftValues); if (_leftValues.Length == 1) { // (...) = RHS is equivalent to ... = RHS: CompoundLeftValue compound = _leftValues[0] as CompoundLeftValue; if (compound != null) { return compound.TransformWrite(gen, rightValues); } if (!HasUnsplattedValue) { return _leftValues[0].TransformWrite(gen, rightValues.TransformToArray(gen)); } } if (rightValues.Expressions.Length == 1) { return TransformWrite(gen, rightValues.Expressions[0].TransformRead(gen), true); } else { return TransformWrite(gen, rightValues.TransformToArray(gen), false); } }
internal override MSA.Expression /*!*/ TransformRead(AstGenerator /*!*/ gen) { return(_arguments.TransformToArray(gen)); }