2009-09-03 Jb Evain <jbevain@novell.com>
[mcs.git] / class / System.Core / System.Linq.Expressions / ChangeLog
blob6025efa119e13faf3c444204566ac0be3a22dcd0
1 2009-09-03  Jb Evain  <jbevain@novell.com>
3         * ConstantExpression.cs (Emit): add support to emit DBNull values.
5 2009-09-03  Jb Evain  <jbevain@novell.com>
7         * ConstantExpression.cs (Emit): add support for emitting
8         DateTime constants.
10 2009-03-05  Jb Evain  <jbevain@novell.com>
12         * EmitContext.cs
13         * ParameterExpression.cs:
14                 add support for hoisted locals.
16 2009-02-24  Jb Evain  <jbevain@novell.com>
18         * Expression.cs (BinaryCoreCheck): fix comparison of enums
20 2009-02-23  Jb Evain  <jbevain@novell.com>
22         * Expression.cs (IsNumber): actually decimal is rather a special
23         case, and not a primitive number.
25 2009-02-23  Jb Evain  <jbevain@novell.com>
27         * Expression.cs (BinaryCoreCheck): add decimal operations
28         are provided by custom operators.
30 2008-12-17  Jb Evain  <jbevain@novell.com>
32         * ExpressionTransformer.cs: fix VisitList.
34 2008-11-19  Jb Evain  <jbevain@novell.com>
36         * Expression.cs: protect against open generic methods.
38 2008-10-08  Atsushi Enomoto  <atsushi@ximian.com>
40         * Expression.cs : give us information about which type does not
41           implement Emit().
43 2008-10-03  Jb Evain  <jbevain@novell.com>
45         * Expression.cs: make sure we properly test complex generic methods
46         as a Call candidate.
48 2008-09-22  Jb Evain  <jbevain@novell.com>
50         * TypeBinaryExpression.cs: protect against testing void expressions.
51         Fixes bug #428309.
53 2008-09-01  Jb Evain  <jbevain@novell.com>
55         * MemberBinding.cs: make .ctor protected instead of public.
57 2008-09-01  Jb Evain  <jbevain@novell.com>
59         * Expression.cs: guard against null parameters passed to Lambda.
61 2008-08-30  Marek Safar  <marek.safar@gmail.com>
63         * MemberBinding.cs: Made MemberBinding ctor public
65 2008-08-07  Jb Evain  <jbevain@novell.com>
67         * Expression.cs (GetAssociatedProperty): strengthen accessors
68         comparisons.
70 2008-08-02  Zoltan Varga  <vargaz@gmail.com>
72         * BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
73         shift amount like mcs compiled code does.
75 2008-07-19  Jb Evain  <jbevain@novell.com>
77         * Expression.cs (Call, Field, Property): disallow instance arguments
78         on static members. See ms connect #339351.
80 2008-07-18  Jb Evain  <jbevain@novell.com>
82         * Expression.cs, BinaryExpression.cs: fix retrieval of true and false
83         operators.
85 2008-06-20  Jb Evain  <jbevain@novell.com>
87         * LambdaExpression.cs, EmitContext.cs: refactor the emit context to
88         handle the fact that lambdas are compiled in a general context where
89         they share globals but are also able to use parameters from parent lambdas.
90         (Although parameter sharing is not implemented yet).
92         * BinaryExpression.cs (fix converted coalesce case to use the lambda
93         compilation code).
95 2008-06-09  Jb Evain  <jbevain@novell.com>
97         * Extensions.cs (Type.IsExpression): add
98         * Expression.cs (CheckMethodArguments): modify the argument list
99         to quote arguments when if necessary.
102 2008-06-09  Jb Evain  <jbevain@novell.com>
104         * Expression.cs (CheckLambda): quote body if required.
106 2008-06-07  Jb Evain  <jbevain@novell.com>
108         * BinaryExpression.cs (EmitConvertedCoalesce): implement.
110 2008-06-05  Jb Evain  <jbevain@novell.com>
112         * Expression.cs (GetUserConversionMethod): check for convertion
113         operators on both types.
115 2008-06-05  Jb Evain  <jbevain@novell.com>
117         * Expression.cs (ConditionalBinaryCheck): if a method is passed,
118         checked that the operators true and false are also defined.
120 2008-06-05  Jb Evain  <jbevain@novell.com>
122         * BinaryExpression.cs (Emit): deal with binary expressions
123         where only the left is lifted.
125 2008-06-05  Jb Evain  <jbevain@novell.com>
127         * Extensions.cs: Add Type.MakeNullableType helper.
128         * Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
129         creat lifted/lifted to null/not lifted
130         user defined binary expressions.
131         * BinaryExpression.cs (Emit): implement compilation of
132         lifted and lifted to null user defined binary operators.
134 2008-06-05  Jb Evain  <jbevain@novell.com>
136         * Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
137         unary expressions with user defined operators.
138         * UnaryExpression.cs (Emit): fix compilation of lifted user operators.
140 2008-05-30  Jb Evain  <jbevain@novell.com>
142         * UnaryExpression.cs (Emit): fix convertion from nullable
143         to nullable types.
145 2008-05-29  Jb Evain  <jbevain@novell.com>
147         * Expression.cs (Power): allow bool?.
148         * BinaryExpression.cs: properly deal with lifted power expression.
150 2008-05-29  Jb Evain  <jbevain@novell.com>
152         * BinaryExpression.cs (Emit): fix lifted andalso and orelse.
154 2008-05-29  Jb Evain  <jbevain@novell.com>
156         * BinaryExpression.cs (Emit): properly emit lifted to null
157         relational binary expressions.
159 2008-05-28  Jb Evain  <jbevain@novell.com>
161         * BinaryExpression.cs (Emit): rework compilation of
162         arithmetic and relational lifted binary expressions.
164 2008-05-28  Jb Evain  <jbevain@novell.com>
166         * UnaryExpression.cs (Emit): implement support for compiling
167         lifted unary expressions.
169 2008-05-27  Jb Evain  <jbevain@novell.com>
171         * UnaryExpression.cs (EmitConvert): implement nullable to nullable
172         convert.
174 2008-05-20  Roei Erez  <roeie@mainsoft.com>
176         * Extensions.cs: Add 'IsGenericImplementationOf' extension method
178 2008-05-15  Jb Evain  <jbevain@novell.com>
180         * UnaryExpression.cs, EmitContext.cs: emit convert from and
181         to nullable types.
183 2008-05-15  Jb Evain  <jbevain@novell.com>
185         * Extensions.cs: add a few useful extensions such as
186         IsGenericInstanceOf and MakeGenericFrom.
188 2008-05-15  Roei Erez  <roeie@mainsoft.com>
190         * ExpressionTransformer.cs: Add a base class for transforming Expressions.
191         In use at AsQueryable() implementation.
193 2008-05-14  Jb Evain  <jbevain@novell.com>
195         * EmitContext.cs: only generate a new lambda name if we're in
196         a debug context.
198 2008-05-14  Jb Evain  <jbevain@novell.com>
200         * LambdaExpression.cs, EmitContext.cs: When encountering a lambda
201         inside an ET, compile it as a read of a global. Based on a patch
202         by Roei Erez <roeie@mainsoft.com>
204 2008-05-08  Jb Evain  <jbevain@novell.com>
206         * Expression.cs, EmitContext.cs: deal with call to methods
207         with byref parameters.
209 2008-05-07  Roei Erez  <roeie@mainsoft.com>
211         * Add ifdef TARGET_JVM
213 2008-05-03  Jb Evain  <jbevain@novell.com>
215         * LambdaExpression.cs: move checks to Expression
216         * Expression.cs: apply check for both typed and untyped lambda
217         creation, so that the constructor does not throws exception.
218         Needed to create instances of Expression<> for untyped lambda
219         factory method. Fixes #386322.
221 2008-05-02  Jb Evain  <jbevain@novell.com>
223         * Expression.cs: make Emit virtual instead of abstract,
224         to allow externals libraries to extend Expression.
225         Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
227 2008-04-29  Jb Evain  <jbevain@novell.com>
229         * UnaryExpression.cs (EmitPrimitiveConversion): implement.
231 2008-04-28  Jb Evain  <jbevain@novell.com>
233         * EmitContext.cs: deal with globals when encountering them while
234         compiling, and not ahead of time with a dedicated visitor.
236 2008-04-27  Jb Evain  <jbevain@novell.com>
238         * ConstantExpression.cs (Emit): emit properly null nullable types.
240 2008-04-27  Jb Evain  <jbevain@novell.com>
242         * Expression.cs: improve method finder.
244 2008-04-24  Jb Evain  <jbevain@novell.com>
246         * UnaryExpression.cs, EmitContext.cs: implement compilation
247         of Quote as a global load.
249 2008-04-23  Jb Evain  <jbevain@novell.com>
251         * UnaryExpression.cs: start implementing EmitConvert.
253 2008-04-23  Jb Evain  <jbevain@novell.com>
255         * ConstantExpression.cs (Emit): properly Emit null constants.
257 2008-04-23  Jb Evain  <jbevain@novell.com>
259         * Expression.cs (Constant): check for assignability, not for type
260         equality, when a type is passed.
262 2008-04-23  Jb Evain  <jbevain@novell.com>
264         * ExpressionPrinter.cs: ToString convert properly.
266 2008-04-22  Jb Evain  <jbevain@novell.com>
268         * UnaryExpression.cs: implement IsLiftedToNull properly.
269         * Expression.cs (Convert, ConvertChecked): implemented computing
270         of IsLifted and IsLiftedToNull for conversions.
272 2008-04-22  Jb Evain  <jbevain@novell.com>
274         * Expression.cs (Convert, ConvertChecked): implement.
276 2008-04-21  Jb Evain  <jbevain@novell.com>
278         * Expression.cs (Call): don't rely on the fact that if the
279         instance expression is null, then it's a static call. Explicitely
280         check on the MethodInfo for that.
281         * EmitContext.cs (EmitCall): same pattern.
283 2008-04-20  Jb Evain  <jbevain@novell.com>
285         * MemberMemberBinding.cs (Emit): implement.
287 2008-04-19  Jb Evain  <jbevain@novell.com>
289         * EmitContext.cs: infrastructure work to attach a compiled
290         lambda expression to an execution scope, and to detect and store
291         external globals in the scope.
292         * ConstantExpression.cs: load globals from the scope.
294 2008-04-19  Jb Evain  <jbevain@novell.com>
296         * ExpressionVisitor.cs (Visit): don't die because of Power.
298 2008-04-09  Jb Evain  <jbevain@novell.com>
300         * Expression.cs: check for illegal booleab unary expressions.
302 2008-04-09  Jb Evain  <jbevain@novell.com>
304         * UnaryExpression.cs: implement compilation of negate.
306 2008-04-09  Jb Evain  <jbevain@novell.com>
308         * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
309         to null for simple unary operators. Implement Not compilation.
311 2008-04-08  Jb Evain  <jbevain@novell.com>
313         * ElementInit.cs: emit pop if the add method doesn't return void.
315 2008-03-20  Jb Evain  <jbevain@novell.com>
317         * Expression.cs: use the new and more complete IsAssignableTo
318         instead of IsAssignableFrom.
320 2008-03-19  Jb Evain  <jbevain@novell.com>
322         * LambdaExpression.cs: use the new standardified IsAssignableTo,
323         fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
325 2008-03-19  Jb Evain  <jbevain@novell.com>
327         * Extensions.cs (Type.IsAssignableTo): deal with arrays.
329 2008-03-13  Jb Evain  <jbevain@novell.com>
331         * NewArrayExpression.cs (EmitNewArrayBounds): implement.
333 2008-03-12  Jb Evain  <jbevain@novell.com>
335         * NewArrayExpression.cs (Emit): naive implementation of emit support
336         for array initialization.
338 2008-03-11  Jb Evain  <jbevain@novell.com>
340         * BinaryExpression.cs: very naive implementation of emitting
341         array accesses.
343 2008-03-11  Jb Evain  <jbevain@novell.com>
345         * *.cs: Move the different Emit* helpers to EmitContext,
346         so that they get used more naturally by the non Expression
347         types.
349 2008-03-10  Jb Evain  <jbevain@novell.com>
351         * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
352         * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
354 2008-03-10  Jb Evain  <jbevain@novell.com>
356         * TypeBinaryExpression.cs (Emit): implement.
358 2008-03-08  Jb Evain  <jbevain@novell.com>
360         * MemberListBinding.cs (Emit): implement.
361         * MemberBinding.cs (EmitLoadMember): add helper.
363 2008-03-08  Jb Evain  <jbevain@novell.com>
365         * MemberAssignment.cs (Emit): implement.
367 2008-03-08  Jb Evain  <jbevain@novell.com>
369         * ElementInit.cs (Emit): implement.
371 2008-03-06  Jb Evain  <jbevain@novell.com>
373         * EmitContext.cs: the DebugContext delegate the CreateDelegate
374         to a DynamicContext to avoid visibility issues in debug mode.
376 2008-03-06  Jb Evain  <jbevain@novell.com>
378         * EmitContext.cs: Lambda methods bypass JIT visibility checks.
380 2008-03-06  Jb Evain  <jbevain@novell.com>
382         * MethodCallExpression.cs, Expression.cs: refactor method calling
383         into a more sophisticated EmitCall in Expression.
384         * InvocationExpression.cs (Emit): implement using the previous EmitCall.
386 2008-03-06  Jb Evain  <jbevain@novell.com>
388         * Expression.cs: add a EmitCall helper.
389         * MemberExpression.cs: implement property access.
391 2008-03-06  Jb Evain  <jbevain@novell.com>
393         * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
394         * MemberExpression.cs: use EmitLoad to load the instance field if needed.
396 2008-03-06  Jb Evain  <jbevain@novell.com>
398         * BinaryExpression.cs, Expression.cs: move EmitStored from
399         BinaryExpression to Expression.
400         * MethodCallExpression.cs: allow method calls on structs.
402 2008-03-05  Jb Evain  <jbevain@novell.com>
404         * Expression.cs: Fix the Call method which takes an array
405         of type arguments.
407 2008-03-05  Jb Evain  <jbevain@novell.com>
409         * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
411 2008-02-26  Jb Evain  <jbevain@novell.com>
413         * Expression.cs (Call): Guess the parameters type from the argument
414         types if needed.
416 2008-02-25  Jb Evain  <jbevain@novell.com>
418         * NewExpression.cs (Emit): deal with value types construction.
420 2008-02-25  Jb Evain  <jbevain@novell.com>
422         * Expression.cs, NewExpression.cs: deal with the fact that value types
423         don't have a parameterless constructor.
425 2008-02-24  Jb Evain  <jbevain@novell.com>
427         * LambdaExpression.cs, EmitContext.cs: make compilation
428         of delegate returning void work.
430 2008-02-24  Jb Evain  <jbevain@novell.com>
432         * MethodCallExpression.cs: emit call or callvirt depending
433         on the virtuality of the method.
435 2008-02-24  Jb Evain  <jbevain@novell.com>
437         * LambdaExpression.cs: properly format error message.
439 2008-02-21  Jb Evain  <jbevain@novell.com>
441         * BinaryExpression.cs (EmitCoalesce): fix setup_null.
443 2008-02-21  Jb Evain  <jbevain@novell.com>
445         * BinaryExpression.cs (Emit): fix the both_are_null case.
447 2008-02-20  Jb Evain  <jbevain@novell.com>
449         * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
451 2008-02-20  Jb Evain  <jbevain@novell.com>
453         * Expression.cs, ExpressionPrinter.cs: implement ListInit.
455 2008-02-19  Jb Evain  <jbevain@novell.com>
457         * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
459 2008-02-19  Jb Evain  <jbevain@novell.com>
461         * Expression.cs, ExpressionPrinter.cs: implement last New
462         overload for anonymous types.
464 2008-02-08  Jb Evain  <jbevain@novell.com>
466         * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
467                 add support for Invoke.
469 2008-02-04  Jb Evain  <jbevain@novell.com>
471         * ExpressionPrinter.cs: fix printing of MemberListBinding.
473 2008-02-04  Jb Evain  <jbevain@novell.com>
475         * Expression.cs, NewExpression.cs: make New(Type) test pass.
477 2008-02-04  Jb Evain  <jbevain@novell.com>
479         * ExpressionPrinter.cs: fix and clean printing of ElementInit.
481 2008-02-02  Jb Evain  <jbevain@novell.com>
483         * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
485 2008-02-02  Jb Evain  <jbevain@novell.com>
487         * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
489 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
491         * Expression.cs, ExpressionPrinter.cs:Add ListBind
493 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
495         * Expression.cs, ExpressionPrinter.cs:Add Elementinit
497 2008-01-31  Jb Evain  <jbevain@novell.com>
499         * UnaryExpression.cs: emit array length.
501 2008-01-31  Jb Evain  <jbevain@novell.com>
503         * MemberExpression.cs: Simple support for emitting fields.
505 2008-01-30  Jb Evain  <jbevain@novell.com>
507         * MethodCallExpression.cs: very naive implementation of Emit.
509 2008-01-30  Jb Evain  <jbevain@novell.com>
511         * NewExpression.cs: add Emit support for reference types.
513 2008-01-30  Jb Evain  <jbevain@novell.com>
515         * LambdaExpression.cs, EmitContext.cs: small refactoring.
516         Extract the different EmitContexts to their own file.
518 2008-01-29  Jb Evain  <jbevain@novell.com>
520         * MethodCallExpression.cs, Expression.cs: complete Calls.
522 2008-01-29  Jb Evain  <jbevain@novell.com>
524         * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
525         implement the first flavors of New.
527 2008-01-27  Jb Evain  <jbevain@novell.com>
529         * ConditionalExpression.cs: implement Emit.
531 2008-01-27  Jb Evain  <jbevain@novell.com>
533         * Expression.cs: implement the last Lambda method.
535 2008-01-27  Jb Evain  <jbevain@novell.com>
537         * LambdaExpression.cs: fix the Type of the LambdaExpressions.
539 2008-01-27  Olivier Dufour  <olivier.duff@gmail.com>
541         * Expression.cs, InvocationExpession.cs,
542         ListInitExpression.cs, MemberInitExpression.cs
543         NewExpression.cs : Add all missing
544         constructor in Expressions and remove the base one
546 2008-01-25  Jb Evain  <jbevain@novell.com>
548         * Expression.cs, ExpressionPrinter.cs: implement Bind.
550 2008-01-25  Jb Evain  <jbevain@novell.com>
552         * MemberMemberBinding.cs, MemberListBinding.cs,
553         MemberAssignment.cs, MemberBinding.cs:
554         add constructors.
556 2008-01-25  Jb Evain  <jbevain@novell.com>
558         * Expression.cs: implement PropertyOrField.
560 2008-01-24  Jb Evain  <jbevain@novell.com>
562         * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
563         implement Field and Property.
565 2008-01-22  Miguel de Icaza  <miguel@novell.com>
567         * BinaryExpression.cs: Unleash the power of cut and paste.
569         Bring a bunch of operatros from mcs/expression.cs
571         * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
572         used those from mcs, that was wrong.   use the proper ones, clean
573         up the result.
575         * BinaryExpression.cs: Add method invocations for binary methods.
577 2008-01-22  Jb Evain  <jbevain@novell.com>
579         * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
581 2008-01-22  Jb Evain  <jbevain@novell.com>
583         * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
584         implement Expression.NewArrayBounds.
586 2008-01-22  Jb Evain  <jbevain@novell.com>
588         * ExpressionPrinter.cs: fix Lambda and Equal.
590 2008-01-22  Miguel de Icaza  <miguel@novell.com>
592         * BinaryExpression.cs (EmitCoalesce): Add support for emitting
593         code for Coalesce.
595         TODO: this does not use the "Conversion" Lambda, which am not sure
596         who generates this or what it is used for.
598         (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
600         * Expression.cs: Add support for Coalesce.
601         (BinaryCoreCheck): Move more checking here, instead of the helper
602         routines, will remove them next.
604         * LambdaExpression.cs (Compile): Create the delegate last, so we
605         manage to save the assembly while debugging in case of error
607 2008-01-21  Miguel de Icaza  <miguel@novell.com>
609         * Expression.cs (BinaryCoreCheck): Add checking for a few
610         operators here (to avoid doing a second pass, handles AndAlso and
611         OrElse).
613         (AndAlso, OrElse): Add some code.
615         * BinaryExpression.cs: Instead of using GetValueOrDefault use
616         get_Value, as we already probed for the lack of value.
618         Split out support for And/Or to a separate routine as the code is
619         not very easy to share with the arithmetics code.
621 2008-01-21  Marek Safar  <marek.safar@gmail.com>
623         * BinaryExpression.cs: Fixed initobj initialization.
625 2008-01-21  Jb Evain  <jbevain@novell.com>
627         * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
628         Move the IsUnsigned helper from BinaryExpression to Expression,
629         so it can be used in UnaryExpression.
631 2008-01-21  Miguel de Icaza  <miguel@novell.com>
633         * Start code generation for nullables, currently this generates
634         incorrect code for things like:
636         Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
637         e2.Compile ().Invoke (null, 3))
639         This should return null, but returns something else.
641         * Introduce LINQ_DBG env variable, which generates a linq file in
642         /tmp;   It currently does not work as well as it should, as the
643         Func<> parameters do not mwatch the generated method.
644         Investigate.
647 2008-01-20  Miguel de Icaza  <miguel@novell.com>
649         Introduce support for Nullable arguments, no code is generated for
650         these yet, its only tests + node creation behavior at this point.
652         * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
653         as operators, they must both be nullable.
655         NullableTypes in the arguments are transformed into the underlying
656         values when doing the method validation.
658 2008-01-18  Miguel de Icaza  <miguel@novell.com>
660         * ParameterExpression.cs: Add emit support.
662 2008-01-18  Jb Evain  <jbevain@novell.com>
664         * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
666 2008-01-18  Miguel de Icaza  <miguel@novell.com>
668         * BinaryExpression.cs: Add support for emitting code for some
669         operators (ported from the Mono C# compiler).
671         Add tests.
673 2008-01-17  Miguel de Icaza  <miguel@novell.com>
675         Beginning of code generation framework for Linq.Expressions.
676         Some code was borrowed by from the C# compiler
678         * Expression_T.cs: Fill in the blanks.
680         * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
681         of codegen.
683         * ConstantExpression.cs: Mostly done, need to write tests for
684         non-fundamental types and other ValueType initializations.
686 2008-01-17  Jb Evain  <jbevain@novell.com>
688         * Expression.cs: implement MakeMemberAccess.
690 2008-01-17  Jb Evain  <jbevain@novell.com>
692         * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
693         implement ArrayIndex.
695 2008-01-17  Jb Evain  <jbevain@novell.com>
697         * Expression.cs: Use TypeCode for IsInt and IsNumber.
699 2008-01-16  Miguel de Icaza  <miguel@novell.com>
701         * Expression.cs: Add support for user-defined operators.
703         Put back various binary operator tests.
705 2008-01-16  Jb Evain  <jbevain@novell.com>
707         * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
709 2008-01-15  Miguel de Icaza  <miguel@novell.com>
711         * Expression.cs: Do validation on the method parameters and use
712         the return type if provided.
714 2008-01-15  Jb Evain  <jbevain@novell.com>
716         * MethodCallExpression.cs, Expression.cs
717         ExpressionPrinter.cs: Implement Call (Expression, ...)
719 2008-01-15  Jb Evain  <jbevain@novell.com>
721         * Expression.cs, ConditionalExpressionExpression.cs
722         ExpressionPrinter.cs : implement Expression.Condition.
724 2008-01-15  Jb Evain  <jbevain@novell.com>
726         * Expression.cs,
727         ParameterExpression.cs,
728         ExpressionPrinter.cs: implement Expression.Parameter
730 2008-01-15  Jb Evain  <jbevain@novell.com>
732         * ExpressionPrinter.cs (VisitBinaryExpression): simple
733         implementation (probably misses a few cases).
735 2008-01-14  Miguel de Icaza  <miguel@novell.com>
737         * Expression.cs: Bring back the (most) of binary operators.  Added
738         type checking as well and reorganized the source file by topic
739         instead of alphabetical sorting.
741 2008-01-14  Jb Evain  <jbevain@novell.com>
743         * ExpressionPrinter.cs: print ArrayLength.
745 2008-01-14  Jb Evain  <jbevain@novell.com>
747         * Expression.cs: TypeAs can't take value types.
748         * ExpressionPrinter.cs: implement TypeAs.
750 2008-01-14  Jb Evain  <jbevain@novell.com>
752         * Expression.cs: implement TypeIs.
753         * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
754         * TypeBinaryExpression.cs: add proper ctor.
756 2008-01-14  Jb Evain  <jbevain@novell.com>
758         * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
760 2008-01-14  Jb Evain  <jbevain@novell.com>
762         * BinaryExpression.cs,
763         * Expression.cs: revert part of Miguel's last patch.
764         MakeBinary is expected to call the appropriate factory
765         methods. Whose methods that are responsible for creating
766         the good BinaryExpression, wether they use a custom method
767         or not.
769 2008-01-14  Jb Evain  <jbevain@novell.com>
771         * Expression.cs: MakeUnary is expected to call the appropriate
772         factory methods.
774 2008-01-14  Miguel de Icaza  <miguel@novell.com>
776         * Expression.cs (Constant, MakeBinary and consumers of it): Some
777         more fill-up changes.
779         MakeBinary will need much more work to support user-provided
780         types.
782 2008-01-13  Jb Evain  <jbevain@novell.com>
784         * *.cs: fresh implementation.