TransformToArray() приватный Метод

private TransformToArray ( AstGenerator gen ) : Expression
gen AstGenerator
Результат System.Linq.Expressions.Expression
Пример #1
0
        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));
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 internal override MSA.Expression /*!*/ TransformRead(AstGenerator /*!*/ gen)
 {
     return(_arguments.TransformToArray(gen));
 }