in System.Linq.Expressions:
[mcs.git] / class / System.Core / System.Linq.Expressions / ChangeLog
blob5269e2736181a1ef3bb52865e9a37c5f4f7bf8cd
1 2009-11-14  Jb Evain  <jbevain@novell.com>
3         * ExpressionTransformer.cs: adjust return type of all
4          tranformation methods to make the transformer actually
5          useful.
7 2009-10-08  Jb Evain  <jbevain@novell.com>
9         * LambdaExpression.cs (Compile): use the interpreter on MonoTouch.
11 2009-09-03  Jb Evain  <jbevain@novell.com>
13         * ConstantExpression.cs (Emit): add support to emit DBNull values.
15 2009-09-03  Jb Evain  <jbevain@novell.com>
17         * ConstantExpression.cs (Emit): add support for emitting
18         DateTime constants.
20 2009-03-05  Jb Evain  <jbevain@novell.com>
22         * EmitContext.cs
23         * ParameterExpression.cs:
24                 add support for hoisted locals.
26 2009-02-24  Jb Evain  <jbevain@novell.com>
28         * Expression.cs (BinaryCoreCheck): fix comparison of enums
30 2009-02-23  Jb Evain  <jbevain@novell.com>
32         * Expression.cs (IsNumber): actually decimal is rather a special
33         case, and not a primitive number.
35 2009-02-23  Jb Evain  <jbevain@novell.com>
37         * Expression.cs (BinaryCoreCheck): add decimal operations
38         are provided by custom operators.
40 2008-12-17  Jb Evain  <jbevain@novell.com>
42         * ExpressionTransformer.cs: fix VisitList.
44 2008-11-19  Jb Evain  <jbevain@novell.com>
46         * Expression.cs: protect against open generic methods.
48 2008-10-08  Atsushi Enomoto  <atsushi@ximian.com>
50         * Expression.cs : give us information about which type does not
51           implement Emit().
53 2008-10-03  Jb Evain  <jbevain@novell.com>
55         * Expression.cs: make sure we properly test complex generic methods
56         as a Call candidate.
58 2008-09-22  Jb Evain  <jbevain@novell.com>
60         * TypeBinaryExpression.cs: protect against testing void expressions.
61         Fixes bug #428309.
63 2008-09-01  Jb Evain  <jbevain@novell.com>
65         * MemberBinding.cs: make .ctor protected instead of public.
67 2008-09-01  Jb Evain  <jbevain@novell.com>
69         * Expression.cs: guard against null parameters passed to Lambda.
71 2008-08-30  Marek Safar  <marek.safar@gmail.com>
73         * MemberBinding.cs: Made MemberBinding ctor public
75 2008-08-07  Jb Evain  <jbevain@novell.com>
77         * Expression.cs (GetAssociatedProperty): strengthen accessors
78         comparisons.
80 2008-08-02  Zoltan Varga  <vargaz@gmail.com>
82         * BinaryExpression.cs (EmitBinaryOperator): Mask out the upper bits of the
83         shift amount like mcs compiled code does.
85 2008-07-19  Jb Evain  <jbevain@novell.com>
87         * Expression.cs (Call, Field, Property): disallow instance arguments
88         on static members. See ms connect #339351.
90 2008-07-18  Jb Evain  <jbevain@novell.com>
92         * Expression.cs, BinaryExpression.cs: fix retrieval of true and false
93         operators.
95 2008-06-20  Jb Evain  <jbevain@novell.com>
97         * LambdaExpression.cs, EmitContext.cs: refactor the emit context to
98         handle the fact that lambdas are compiled in a general context where
99         they share globals but are also able to use parameters from parent lambdas.
100         (Although parameter sharing is not implemented yet).
102         * BinaryExpression.cs (fix converted coalesce case to use the lambda
103         compilation code).
105 2008-06-09  Jb Evain  <jbevain@novell.com>
107         * Extensions.cs (Type.IsExpression): add
108         * Expression.cs (CheckMethodArguments): modify the argument list
109         to quote arguments when if necessary.
112 2008-06-09  Jb Evain  <jbevain@novell.com>
114         * Expression.cs (CheckLambda): quote body if required.
116 2008-06-07  Jb Evain  <jbevain@novell.com>
118         * BinaryExpression.cs (EmitConvertedCoalesce): implement.
120 2008-06-05  Jb Evain  <jbevain@novell.com>
122         * Expression.cs (GetUserConversionMethod): check for convertion
123         operators on both types.
125 2008-06-05  Jb Evain  <jbevain@novell.com>
127         * Expression.cs (ConditionalBinaryCheck): if a method is passed,
128         checked that the operators true and false are also defined.
130 2008-06-05  Jb Evain  <jbevain@novell.com>
132         * BinaryExpression.cs (Emit): deal with binary expressions
133         where only the left is lifted.
135 2008-06-05  Jb Evain  <jbevain@novell.com>
137         * Extensions.cs: Add Type.MakeNullableType helper.
138         * Expression.cs (MakeSimpleBinary, MakeBoolBinar): Properly
139         creat lifted/lifted to null/not lifted
140         user defined binary expressions.
141         * BinaryExpression.cs (Emit): implement compilation of
142         lifted and lifted to null user defined binary operators.
144 2008-06-05  Jb Evain  <jbevain@novell.com>
146         * Expression.cs (MakeSimpleUnary): properly create lifted/not lifted
147         unary expressions with user defined operators.
148         * UnaryExpression.cs (Emit): fix compilation of lifted user operators.
150 2008-05-30  Jb Evain  <jbevain@novell.com>
152         * UnaryExpression.cs (Emit): fix convertion from nullable
153         to nullable types.
155 2008-05-29  Jb Evain  <jbevain@novell.com>
157         * Expression.cs (Power): allow bool?.
158         * BinaryExpression.cs: properly deal with lifted power expression.
160 2008-05-29  Jb Evain  <jbevain@novell.com>
162         * BinaryExpression.cs (Emit): fix lifted andalso and orelse.
164 2008-05-29  Jb Evain  <jbevain@novell.com>
166         * BinaryExpression.cs (Emit): properly emit lifted to null
167         relational binary expressions.
169 2008-05-28  Jb Evain  <jbevain@novell.com>
171         * BinaryExpression.cs (Emit): rework compilation of
172         arithmetic and relational lifted binary expressions.
174 2008-05-28  Jb Evain  <jbevain@novell.com>
176         * UnaryExpression.cs (Emit): implement support for compiling
177         lifted unary expressions.
179 2008-05-27  Jb Evain  <jbevain@novell.com>
181         * UnaryExpression.cs (EmitConvert): implement nullable to nullable
182         convert.
184 2008-05-20  Roei Erez  <roeie@mainsoft.com>
186         * Extensions.cs: Add 'IsGenericImplementationOf' extension method
188 2008-05-15  Jb Evain  <jbevain@novell.com>
190         * UnaryExpression.cs, EmitContext.cs: emit convert from and
191         to nullable types.
193 2008-05-15  Jb Evain  <jbevain@novell.com>
195         * Extensions.cs: add a few useful extensions such as
196         IsGenericInstanceOf and MakeGenericFrom.
198 2008-05-15  Roei Erez  <roeie@mainsoft.com>
200         * ExpressionTransformer.cs: Add a base class for transforming Expressions.
201         In use at AsQueryable() implementation.
203 2008-05-14  Jb Evain  <jbevain@novell.com>
205         * EmitContext.cs: only generate a new lambda name if we're in
206         a debug context.
208 2008-05-14  Jb Evain  <jbevain@novell.com>
210         * LambdaExpression.cs, EmitContext.cs: When encountering a lambda
211         inside an ET, compile it as a read of a global. Based on a patch
212         by Roei Erez <roeie@mainsoft.com>
214 2008-05-08  Jb Evain  <jbevain@novell.com>
216         * Expression.cs, EmitContext.cs: deal with call to methods
217         with byref parameters.
219 2008-05-07  Roei Erez  <roeie@mainsoft.com>
221         * Add ifdef TARGET_JVM
223 2008-05-03  Jb Evain  <jbevain@novell.com>
225         * LambdaExpression.cs: move checks to Expression
226         * Expression.cs: apply check for both typed and untyped lambda
227         creation, so that the constructor does not throws exception.
228         Needed to create instances of Expression<> for untyped lambda
229         factory method. Fixes #386322.
231 2008-05-02  Jb Evain  <jbevain@novell.com>
233         * Expression.cs: make Emit virtual instead of abstract,
234         to allow externals libraries to extend Expression.
235         Patch by Jan Oravec <jan.oravec@6com.sk>. Fixes #386097.
237 2008-04-29  Jb Evain  <jbevain@novell.com>
239         * UnaryExpression.cs (EmitPrimitiveConversion): implement.
241 2008-04-28  Jb Evain  <jbevain@novell.com>
243         * EmitContext.cs: deal with globals when encountering them while
244         compiling, and not ahead of time with a dedicated visitor.
246 2008-04-27  Jb Evain  <jbevain@novell.com>
248         * ConstantExpression.cs (Emit): emit properly null nullable types.
250 2008-04-27  Jb Evain  <jbevain@novell.com>
252         * Expression.cs: improve method finder.
254 2008-04-24  Jb Evain  <jbevain@novell.com>
256         * UnaryExpression.cs, EmitContext.cs: implement compilation
257         of Quote as a global load.
259 2008-04-23  Jb Evain  <jbevain@novell.com>
261         * UnaryExpression.cs: start implementing EmitConvert.
263 2008-04-23  Jb Evain  <jbevain@novell.com>
265         * ConstantExpression.cs (Emit): properly Emit null constants.
267 2008-04-23  Jb Evain  <jbevain@novell.com>
269         * Expression.cs (Constant): check for assignability, not for type
270         equality, when a type is passed.
272 2008-04-23  Jb Evain  <jbevain@novell.com>
274         * ExpressionPrinter.cs: ToString convert properly.
276 2008-04-22  Jb Evain  <jbevain@novell.com>
278         * UnaryExpression.cs: implement IsLiftedToNull properly.
279         * Expression.cs (Convert, ConvertChecked): implemented computing
280         of IsLifted and IsLiftedToNull for conversions.
282 2008-04-22  Jb Evain  <jbevain@novell.com>
284         * Expression.cs (Convert, ConvertChecked): implement.
286 2008-04-21  Jb Evain  <jbevain@novell.com>
288         * Expression.cs (Call): don't rely on the fact that if the
289         instance expression is null, then it's a static call. Explicitely
290         check on the MethodInfo for that.
291         * EmitContext.cs (EmitCall): same pattern.
293 2008-04-20  Jb Evain  <jbevain@novell.com>
295         * MemberMemberBinding.cs (Emit): implement.
297 2008-04-19  Jb Evain  <jbevain@novell.com>
299         * EmitContext.cs: infrastructure work to attach a compiled
300         lambda expression to an execution scope, and to detect and store
301         external globals in the scope.
302         * ConstantExpression.cs: load globals from the scope.
304 2008-04-19  Jb Evain  <jbevain@novell.com>
306         * ExpressionVisitor.cs (Visit): don't die because of Power.
308 2008-04-09  Jb Evain  <jbevain@novell.com>
310         * Expression.cs: check for illegal booleab unary expressions.
312 2008-04-09  Jb Evain  <jbevain@novell.com>
314         * UnaryExpression.cs: implement compilation of negate.
316 2008-04-09  Jb Evain  <jbevain@novell.com>
318         * UnaryExpression.cs, Expression.cs: implement IsLifted and IsLifted
319         to null for simple unary operators. Implement Not compilation.
321 2008-04-08  Jb Evain  <jbevain@novell.com>
323         * ElementInit.cs: emit pop if the add method doesn't return void.
325 2008-03-20  Jb Evain  <jbevain@novell.com>
327         * Expression.cs: use the new and more complete IsAssignableTo
328         instead of IsAssignableFrom.
330 2008-03-19  Jb Evain  <jbevain@novell.com>
332         * LambdaExpression.cs: use the new standardified IsAssignableTo,
333         fixes ExpressionTest_NewArrayBounds.TestArrayAssignability.
335 2008-03-19  Jb Evain  <jbevain@novell.com>
337         * Extensions.cs (Type.IsAssignableTo): deal with arrays.
339 2008-03-13  Jb Evain  <jbevain@novell.com>
341         * NewArrayExpression.cs (EmitNewArrayBounds): implement.
343 2008-03-12  Jb Evain  <jbevain@novell.com>
345         * NewArrayExpression.cs (Emit): naive implementation of emit support
346         for array initialization.
348 2008-03-11  Jb Evain  <jbevain@novell.com>
350         * BinaryExpression.cs: very naive implementation of emitting
351         array accesses.
353 2008-03-11  Jb Evain  <jbevain@novell.com>
355         * *.cs: Move the different Emit* helpers to EmitContext,
356         so that they get used more naturally by the non Expression
357         types.
359 2008-03-10  Jb Evain  <jbevain@novell.com>
361         * TypeBinaryExpression.cs, Expression.cs: refactor an EmitIsInst.
362         * UnaryExpression.cs: implement TypeAs using the EmitIsInst.
364 2008-03-10  Jb Evain  <jbevain@novell.com>
366         * TypeBinaryExpression.cs (Emit): implement.
368 2008-03-08  Jb Evain  <jbevain@novell.com>
370         * MemberListBinding.cs (Emit): implement.
371         * MemberBinding.cs (EmitLoadMember): add helper.
373 2008-03-08  Jb Evain  <jbevain@novell.com>
375         * MemberAssignment.cs (Emit): implement.
377 2008-03-08  Jb Evain  <jbevain@novell.com>
379         * ElementInit.cs (Emit): implement.
381 2008-03-06  Jb Evain  <jbevain@novell.com>
383         * EmitContext.cs: the DebugContext delegate the CreateDelegate
384         to a DynamicContext to avoid visibility issues in debug mode.
386 2008-03-06  Jb Evain  <jbevain@novell.com>
388         * EmitContext.cs: Lambda methods bypass JIT visibility checks.
390 2008-03-06  Jb Evain  <jbevain@novell.com>
392         * MethodCallExpression.cs, Expression.cs: refactor method calling
393         into a more sophisticated EmitCall in Expression.
394         * InvocationExpression.cs (Emit): implement using the previous EmitCall.
396 2008-03-06  Jb Evain  <jbevain@novell.com>
398         * Expression.cs: add a EmitCall helper.
399         * MemberExpression.cs: implement property access.
401 2008-03-06  Jb Evain  <jbevain@novell.com>
403         * MethodCallExpression.cs, Expression.cs: refactor a EmitLoad in Expression.
404         * MemberExpression.cs: use EmitLoad to load the instance field if needed.
406 2008-03-06  Jb Evain  <jbevain@novell.com>
408         * BinaryExpression.cs, Expression.cs: move EmitStored from
409         BinaryExpression to Expression.
410         * MethodCallExpression.cs: allow method calls on structs.
412 2008-03-05  Jb Evain  <jbevain@novell.com>
414         * Expression.cs: Fix the Call method which takes an array
415         of type arguments.
417 2008-03-05  Jb Evain  <jbevain@novell.com>
419         * Expression.cs: fix for a good chunk of lifted/liftToNull tests.
421 2008-02-26  Jb Evain  <jbevain@novell.com>
423         * Expression.cs (Call): Guess the parameters type from the argument
424         types if needed.
426 2008-02-25  Jb Evain  <jbevain@novell.com>
428         * NewExpression.cs (Emit): deal with value types construction.
430 2008-02-25  Jb Evain  <jbevain@novell.com>
432         * Expression.cs, NewExpression.cs: deal with the fact that value types
433         don't have a parameterless constructor.
435 2008-02-24  Jb Evain  <jbevain@novell.com>
437         * LambdaExpression.cs, EmitContext.cs: make compilation
438         of delegate returning void work.
440 2008-02-24  Jb Evain  <jbevain@novell.com>
442         * MethodCallExpression.cs: emit call or callvirt depending
443         on the virtuality of the method.
445 2008-02-24  Jb Evain  <jbevain@novell.com>
447         * LambdaExpression.cs: properly format error message.
449 2008-02-21  Jb Evain  <jbevain@novell.com>
451         * BinaryExpression.cs (EmitCoalesce): fix setup_null.
453 2008-02-21  Jb Evain  <jbevain@novell.com>
455         * BinaryExpression.cs (Emit): fix the both_are_null case.
457 2008-02-20  Jb Evain  <jbevain@novell.com>
459         * Expression.cs, ExpressionPrinter.cs: implement MemberBind.
461 2008-02-20  Jb Evain  <jbevain@novell.com>
463         * Expression.cs, ExpressionPrinter.cs: implement ListInit.
465 2008-02-19  Jb Evain  <jbevain@novell.com>
467         * Expression.cs, ExpressionPrinter.cs: implement MemberInit.
469 2008-02-19  Jb Evain  <jbevain@novell.com>
471         * Expression.cs, ExpressionPrinter.cs: implement last New
472         overload for anonymous types.
474 2008-02-08  Jb Evain  <jbevain@novell.com>
476         * Expression.cs, InvocationExpression.cs, ExpressionPrinter.cs
477                 add support for Invoke.
479 2008-02-04  Jb Evain  <jbevain@novell.com>
481         * ExpressionPrinter.cs: fix printing of MemberListBinding.
483 2008-02-04  Jb Evain  <jbevain@novell.com>
485         * Expression.cs, NewExpression.cs: make New(Type) test pass.
487 2008-02-04  Jb Evain  <jbevain@novell.com>
489         * ExpressionPrinter.cs: fix and clean printing of ElementInit.
491 2008-02-02  Jb Evain  <jbevain@novell.com>
493         * Expression.cs: fix ListBind(MemberInfo,IEnumerable<ElementInit>).
495 2008-02-02  Jb Evain  <jbevain@novell.com>
497         * Expression.cs: fix ListBind(MethodInfo,IEnumerable<ElementInit>).
499 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
501         * Expression.cs, ExpressionPrinter.cs:Add ListBind
503 2008-02-01  Olivier Dufour  <olivier.duff@gmail.com>
505         * Expression.cs, ExpressionPrinter.cs:Add Elementinit
507 2008-01-31  Jb Evain  <jbevain@novell.com>
509         * UnaryExpression.cs: emit array length.
511 2008-01-31  Jb Evain  <jbevain@novell.com>
513         * MemberExpression.cs: Simple support for emitting fields.
515 2008-01-30  Jb Evain  <jbevain@novell.com>
517         * MethodCallExpression.cs: very naive implementation of Emit.
519 2008-01-30  Jb Evain  <jbevain@novell.com>
521         * NewExpression.cs: add Emit support for reference types.
523 2008-01-30  Jb Evain  <jbevain@novell.com>
525         * LambdaExpression.cs, EmitContext.cs: small refactoring.
526         Extract the different EmitContexts to their own file.
528 2008-01-29  Jb Evain  <jbevain@novell.com>
530         * MethodCallExpression.cs, Expression.cs: complete Calls.
532 2008-01-29  Jb Evain  <jbevain@novell.com>
534         * Expression.cs, NewExpression.cs, ExpressionPrinter.cs:
535         implement the first flavors of New.
537 2008-01-27  Jb Evain  <jbevain@novell.com>
539         * ConditionalExpression.cs: implement Emit.
541 2008-01-27  Jb Evain  <jbevain@novell.com>
543         * Expression.cs: implement the last Lambda method.
545 2008-01-27  Jb Evain  <jbevain@novell.com>
547         * LambdaExpression.cs: fix the Type of the LambdaExpressions.
549 2008-01-27  Olivier Dufour  <olivier.duff@gmail.com>
551         * Expression.cs, InvocationExpession.cs,
552         ListInitExpression.cs, MemberInitExpression.cs
553         NewExpression.cs : Add all missing
554         constructor in Expressions and remove the base one
556 2008-01-25  Jb Evain  <jbevain@novell.com>
558         * Expression.cs, ExpressionPrinter.cs: implement Bind.
560 2008-01-25  Jb Evain  <jbevain@novell.com>
562         * MemberMemberBinding.cs, MemberListBinding.cs,
563         MemberAssignment.cs, MemberBinding.cs:
564         add constructors.
566 2008-01-25  Jb Evain  <jbevain@novell.com>
568         * Expression.cs: implement PropertyOrField.
570 2008-01-24  Jb Evain  <jbevain@novell.com>
572         * Expression.cs, MemberExpression.cs, ExpressionPrinter.cs:
573         implement Field and Property.
575 2008-01-22  Miguel de Icaza  <miguel@novell.com>
577         * BinaryExpression.cs: Unleash the power of cut and paste.
579         Bring a bunch of operatros from mcs/expression.cs
581         * Expression.cs: There is no op_LogicalAnd or op_LogicalOr, I just
582         used those from mcs, that was wrong.   use the proper ones, clean
583         up the result.
585         * BinaryExpression.cs: Add method invocations for binary methods.
587 2008-01-22  Jb Evain  <jbevain@novell.com>
589         * Expression.cs, ExpressionPrinter.cs: implement NewArrayList.
591 2008-01-22  Jb Evain  <jbevain@novell.com>
593         * Expression.cs, ExpressionPrinter.cs, NewArrayExpression.cs:
594         implement Expression.NewArrayBounds.
596 2008-01-22  Jb Evain  <jbevain@novell.com>
598         * ExpressionPrinter.cs: fix Lambda and Equal.
600 2008-01-22  Miguel de Icaza  <miguel@novell.com>
602         * BinaryExpression.cs (EmitCoalesce): Add support for emitting
603         code for Coalesce.
605         TODO: this does not use the "Conversion" Lambda, which am not sure
606         who generates this or what it is used for.
608         (EmitLogical): Fix a couple of bugs in AndAlso, OrElse.
610         * Expression.cs: Add support for Coalesce.
611         (BinaryCoreCheck): Move more checking here, instead of the helper
612         routines, will remove them next.
614         * LambdaExpression.cs (Compile): Create the delegate last, so we
615         manage to save the assembly while debugging in case of error
617 2008-01-21  Miguel de Icaza  <miguel@novell.com>
619         * Expression.cs (BinaryCoreCheck): Add checking for a few
620         operators here (to avoid doing a second pass, handles AndAlso and
621         OrElse).
623         (AndAlso, OrElse): Add some code.
625         * BinaryExpression.cs: Instead of using GetValueOrDefault use
626         get_Value, as we already probed for the lack of value.
628         Split out support for And/Or to a separate routine as the code is
629         not very easy to share with the arithmetics code.
631 2008-01-21  Marek Safar  <marek.safar@gmail.com>
633         * BinaryExpression.cs: Fixed initobj initialization.
635 2008-01-21  Jb Evain  <jbevain@novell.com>
637         * Expression.cs, UnaryExpression.cs, BinaryExpression.cs:
638         Move the IsUnsigned helper from BinaryExpression to Expression,
639         so it can be used in UnaryExpression.
641 2008-01-21  Miguel de Icaza  <miguel@novell.com>
643         * Start code generation for nullables, currently this generates
644         incorrect code for things like:
646         Expression<Func<int?, int?, int?>> e2 = (a, b) => a + b;
647         e2.Compile ().Invoke (null, 3))
649         This should return null, but returns something else.
651         * Introduce LINQ_DBG env variable, which generates a linq file in
652         /tmp;   It currently does not work as well as it should, as the
653         Func<> parameters do not mwatch the generated method.
654         Investigate.
657 2008-01-20  Miguel de Icaza  <miguel@novell.com>
659         Introduce support for Nullable arguments, no code is generated for
660         these yet, its only tests + node creation behavior at this point.
662         * Expression.cs (BinaryCoreCheck): Do not allow "int?" and "int"
663         as operators, they must both be nullable.
665         NullableTypes in the arguments are transformed into the underlying
666         values when doing the method validation.
668 2008-01-18  Miguel de Icaza  <miguel@novell.com>
670         * ParameterExpression.cs: Add emit support.
672 2008-01-18  Jb Evain  <jbevain@novell.com>
674         * Expression[Printer|Visitor].cs: implement UnaryPlus, Not, Negate.
676 2008-01-18  Miguel de Icaza  <miguel@novell.com>
678         * BinaryExpression.cs: Add support for emitting code for some
679         operators (ported from the Mono C# compiler).
681         Add tests.
683 2008-01-17  Miguel de Icaza  <miguel@novell.com>
685         Beginning of code generation framework for Linq.Expressions.
686         Some code was borrowed by from the C# compiler
688         * Expression_T.cs: Fill in the blanks.
690         * LambdaExpression.cs: Validation of parameters mostly, a tiny bit
691         of codegen.
693         * ConstantExpression.cs: Mostly done, need to write tests for
694         non-fundamental types and other ValueType initializations.
696 2008-01-17  Jb Evain  <jbevain@novell.com>
698         * Expression.cs: implement MakeMemberAccess.
700 2008-01-17  Jb Evain  <jbevain@novell.com>
702         * Expression.cs, ExpressionPrinter.cs, BinaryExpression.cs:
703         implement ArrayIndex.
705 2008-01-17  Jb Evain  <jbevain@novell.com>
707         * Expression.cs: Use TypeCode for IsInt and IsNumber.
709 2008-01-16  Miguel de Icaza  <miguel@novell.com>
711         * Expression.cs: Add support for user-defined operators.
713         Put back various binary operator tests.
715 2008-01-16  Jb Evain  <jbevain@novell.com>
717         * Expression.cs, ExpressionPrinter.cs: fix call for static methods.
719 2008-01-15  Miguel de Icaza  <miguel@novell.com>
721         * Expression.cs: Do validation on the method parameters and use
722         the return type if provided.
724 2008-01-15  Jb Evain  <jbevain@novell.com>
726         * MethodCallExpression.cs, Expression.cs
727         ExpressionPrinter.cs: Implement Call (Expression, ...)
729 2008-01-15  Jb Evain  <jbevain@novell.com>
731         * Expression.cs, ConditionalExpressionExpression.cs
732         ExpressionPrinter.cs : implement Expression.Condition.
734 2008-01-15  Jb Evain  <jbevain@novell.com>
736         * Expression.cs,
737         ParameterExpression.cs,
738         ExpressionPrinter.cs: implement Expression.Parameter
740 2008-01-15  Jb Evain  <jbevain@novell.com>
742         * ExpressionPrinter.cs (VisitBinaryExpression): simple
743         implementation (probably misses a few cases).
745 2008-01-14  Miguel de Icaza  <miguel@novell.com>
747         * Expression.cs: Bring back the (most) of binary operators.  Added
748         type checking as well and reorganized the source file by topic
749         instead of alphabetical sorting.
751 2008-01-14  Jb Evain  <jbevain@novell.com>
753         * ExpressionPrinter.cs: print ArrayLength.
755 2008-01-14  Jb Evain  <jbevain@novell.com>
757         * Expression.cs: TypeAs can't take value types.
758         * ExpressionPrinter.cs: implement TypeAs.
760 2008-01-14  Jb Evain  <jbevain@novell.com>
762         * Expression.cs: implement TypeIs.
763         * ExpressionPrinter.cs: implement VisitTypeBinaryExpression.
764         * TypeBinaryExpression.cs: add proper ctor.
766 2008-01-14  Jb Evain  <jbevain@novell.com>
768         * Expression.cs, ExpressionPrinter.cs: fix for Quote's type.
770 2008-01-14  Jb Evain  <jbevain@novell.com>
772         * BinaryExpression.cs,
773         * Expression.cs: revert part of Miguel's last patch.
774         MakeBinary is expected to call the appropriate factory
775         methods. Whose methods that are responsible for creating
776         the good BinaryExpression, wether they use a custom method
777         or not.
779 2008-01-14  Jb Evain  <jbevain@novell.com>
781         * Expression.cs: MakeUnary is expected to call the appropriate
782         factory methods.
784 2008-01-14  Miguel de Icaza  <miguel@novell.com>
786         * Expression.cs (Constant, MakeBinary and consumers of it): Some
787         more fill-up changes.
789         MakeBinary will need much more work to support user-provided
790         types.
792 2008-01-13  Jb Evain  <jbevain@novell.com>
794         * *.cs: fresh implementation.