2008-02-04 Jb Evain * ExpressionPrinter.cs: fix printing of MemberListBinding. 2008-02-04 Jb Evain * Expression.cs, NewExpression.cs: make New(Type) test pass. 2008-02-04 Jb Evain * ExpressionPrinter.cs: fix and clean printing of ElementInit. 2008-02-02 Jb Evain * Expression.cs: fix ListBind(MemberInfo,IEnumerable). 2008-02-02 Jb Evain * Expression.cs: fix ListBind(MethodInfo,IEnumerable). 2008-02-01 Olivier Dufour * Expression.cs, ExpressionPrinter.cs:Add ListBind 2008-02-01 Olivier Dufour * Expression.cs, ExpressionPrinter.cs:Add Elementinit 2008-01-31 Jb Evain * UnaryExpression.cs: emit array length. 2008-01-31 Jb Evain * MemberExpression.cs: Simple support for emitting fields. 2008-01-30 Jb Evain * MethodCallExpression.cs: very naive implementation of Emit. 2008-01-30 Jb Evain * NewExpression.cs: add Emit support for reference types. 2008-01-30 Jb Evain * LambdaExpression.cs, EmitContext.cs: small refactoring. Extract the different EmitContexts to their own file. 2008-01-29 Jb Evain * MethodCallExpression.cs, Expression.cs: complete Calls. 2008-01-29 Jb Evain * Expression.cs, NewExpression.cs, ExpressionPrinter.cs: implement the first flavors of New. 2008-01-27 Jb Evain * ConditionalExpression.cs: implement Emit. 2008-01-27 Jb Evain * Expression.cs: implement the last Lambda method. 2008-01-27 Jb Evain * LambdaExpression.cs: fix the Type of the LambdaExpressions. 2008-01-27 Olivier Dufour * Expression.cs, InvocationExpession.cs, ListInitExpression.cs, MemberInitExpression.cs NewExpression.cs : Add all missing constructor in Expressions and remove the base one 2008-01-25 Jb Evain * Expression.cs, ExpressionPrinter.cs: implement Bind. 2008-01-25 Jb Evain * MemberMemberBinding.cs, MemberListBinding.cs, MemberAssignment.cs, MemberBinding.cs: add constructors. 2008-01-25 Jb Evain * Expression.cs: implement PropertyOrField. 2008-01-24 Jb Evain * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs: implement Field and Property. 2008-01-22 Miguel de Icaza * BinaryExpression.cs: Unleash the power of cut and paste. Bring a bunch of operatros from mcs/expression.cs * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just used those from mcs, that was wrong. use the proper ones, clean up the result. * BinaryExpression.cs: Add method invocations for binary methods. 2008-01-22 Jb Evain * Expression.cs, ExpressionPrinter.cs: implement NewArrayList. 2008-01-22 Jb Evain * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs: implement Expression.NewArrayBounds. 2008-01-22 Jb Evain * ExpressionPrinter.cs: fix Lambda and Equal. 2008-01-22 Miguel de Icaza * BinaryExpression.cs (EmitCoalesce): Add support for emitting code for Coalesce. TODO: this does not use the "Conversion" Lambda, which am not sure who generates this or what it is used for. (EmitLogical): Fix a couple of bugs in AndAlso, OrElse. * Expression.cs: Add support for Coalesce. (BinaryCoreCheck): Move more checking here, instead of the helper routines, will remove them next. * LambdaExpression.cs (Compile): Create the delegate last, so we manage to save the assembly while debugging in case of error 2008-01-21 Miguel de Icaza * Expression.cs (BinaryCoreCheck): Add checking for a few operators here (to avoid doing a second pass, handles AndAlso and OrElse). (AndAlso, OrElse): Add some code. * BinaryExpression.cs: Instead of using GetValueOrDefault use get_Value, as we already probed for the lack of value. Split out support for And/Or to a separate routine as the code is not very easy to share with the arithmetics code. 2008-01-21 Marek Safar * BinaryExpression.cs: Fixed initobj initialization. 2008-01-21 Jb Evain * Expression.cs, UnaryExpression.cs, BinaryExpression.cs: Move the IsUnsigned helper from BinaryExpression to Expression, so it can be used in UnaryExpression. 2008-01-21 Miguel de Icaza * Start code generation for nullables, currently this generates incorrect code for things like: Expression> e2 = (a, b) => a + b; e2.Compile ().Invoke (null, 3)) This should return null, but returns something else. * Introduce LINQ_DBG env variable, which generates a linq file in /tmp; It currently does not work as well as it should, as the Func<> parameters do not mwatch the generated method. Investigate. 2008-01-20 Miguel de Icaza Introduce support for Nullable arguments, no code is generated for these yet, its only tests + node creation behavior at this point. * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int" as operators, they must both be nullable. NullableTypes in the arguments are transformed into the underlying values when doing the method validation. 2008-01-18 Miguel de Icaza * ParameterExpression.cs: Add emit support. 2008-01-18 Jb Evain * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate. 2008-01-18 Miguel de Icaza * BinaryExpression.cs: Add support for emitting code for some operators (ported from the Mono C# compiler). Add tests. 2008-01-17 Miguel de Icaza Beginning of code generation framework for Linq.Expressions. Some code was borrowed by from the C# compiler * Expression_T.cs: Fill in the blanks. * LambdaExpression.cs: Validation of parameters mostly, a tiny bit of codegen. * ConstantExpression.cs: Mostly done, need to write tests for non-fundamental types and other ValueType initializations. 2008-01-17 Jb Evain * Expression.cs: implement MakeMemberAccess. 2008-01-17 Jb Evain * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs: implement ArrayIndex. 2008-01-17 Jb Evain * Expression.cs: Use TypeCode for IsInt and IsNumber. 2008-01-16 Miguel de Icaza * Expression.cs: Add support for user-defined operators. Put back various binary operator tests. 2008-01-16 Jb Evain * Expression.cs, ExpressionPrinter.cs: fix call for static methods. 2008-01-15 Miguel de Icaza * Expression.cs: Do validation on the method parameters and use the return type if provided. 2008-01-15 Jb Evain * MethodCallExpression.cs, Expression.cs ExpressionPrinter.cs: Implement Call (Expression, ...) 2008-01-15 Jb Evain * Expression.cs, ConditionalExpressionExpression.cs ExpressionPrinter.cs : implement Expression.Condition. 2008-01-15 Jb Evain * Expression.cs, ParameterExpression.cs, ExpressionPrinter.cs: implement Expression.Parameter 2008-01-15 Jb Evain * ExpressionPrinter.cs (VisitBinaryExpression): simple implementation (probably misses a few cases). 2008-01-14 Miguel de Icaza * Expression.cs: Bring back the (most) of binary operators. Added type checking as well and reorganized the source file by topic instead of alphabetical sorting. 2008-01-14 Jb Evain * ExpressionPrinter.cs: print ArrayLength. 2008-01-14 Jb Evain * Expression.cs: TypeAs can't take value types. * ExpressionPrinter.cs: implement TypeAs. 2008-01-14 Jb Evain * Expression.cs: implement TypeIs. * ExpressionPrinter.cs: implement VisitTypeBinaryExpression. * TypeBinaryExpression.cs: add proper ctor. 2008-01-14 Jb Evain * Expression.cs, ExpressionPrinter.cs: fix for Quote's type. 2008-01-14 Jb Evain * BinaryExpression.cs, * Expression.cs: revert part of Miguel's last patch. MakeBinary is expected to call the appropriate factory methods. Whose methods that are responsible for creating the good BinaryExpression, wether they use a custom method or not. 2008-01-14 Jb Evain * Expression.cs: MakeUnary is expected to call the appropriate factory methods. 2008-01-14 Miguel de Icaza * Expression.cs (Constant, MakeBinary and consumers of it): Some more fill-up changes. MakeBinary will need much more work to support user-provided types. 2008-01-13 Jb Evain * *.cs: fresh implementation.